Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 probleme de calcul en JAVA Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Lun 25 Juil 2005 - 03:07 Répondre en citantRevenir en haut

bonjour à tous!!
voila comme le dit le sujet, je rencontre un problee lorsque je veux faire l'addition du prix dun "melon" et celui dune "salade"
en effet, mon code ne me donne que le prix du melon PUIS celui de la salade et il ne me fais pas l'addition des 2
ps : mon projet étant celui du calcul d'un prix total

voici mon code :
Code:



// penser à mettre l'opportunité de choisir plusieurs fois le meme element

package com.creperiee.test;

import java.awt.Button;

import java.awt.Checkbox;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.Label;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.math.BigInteger;

import java.util.Enumeration;

import java.util.Hashtable;
import javax.swing.JOptionPane;

public class Cartee extends Frame

{

Label entree = new Label("entree");

Checkbox salade = new Checkbox("salade");

Checkbox melon = new Checkbox("melon");

Label cs = new Label("crepe salee");

Checkbox jf = new Checkbox("jambon fromage");

Checkbox complete = new Checkbox("complete");

Label csu = new Label("crepe sucree");

Checkbox su = new Checkbox("crepe au sucre");

Checkbox choc = new Checkbox("crepe au chocolat");

Label boi = new Label("boisson");

Checkbox coca = new Checkbox("coca cola");

Checkbox cidre = new Checkbox("cidre");

Button bout = new Button("ticket");

Button quitter = new Button("quitter l'application");

Hashtable associationProduitsPrix;

public Cartee()

{

super("creperie");

initFrame();

addBouton();

initPrix();

initBoutonsListeners();

}

private void initFrame()

{

setSize(250, 250);

setLayout(new FlowLayout()); //sinon n'affiche qu'un seul element ds la fenetre

setVisible(true);

setBackground(Color.yellow);

setForeground(Color.black);

}

private void addBouton()

{

add(entree);

add(salade);

add(melon);

add(cs);

add(jf);

add(complete);

add(csu);

add(su);

add(choc);

add(boi);

add(coca);

add(cidre);

add(bout);

add(quitter);

}

private void initPrix()

{

associationProduitsPrix = new Hashtable();

associationProduitsPrix.put(salade, new BigInteger("10"));

associationProduitsPrix.put(melon, new BigInteger("5"));

}

private void initBoutonsListeners()

{

quitter.addActionListener(new ListenerQuitter());

bout.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

BigInteger total = new BigInteger("0");

Enumeration enu = associationProduitsPrix.keys();

while (enu.hasMoreElements())

{

Checkbox check = (Checkbox)enu.nextElement();

if (check.getState())

{

BigInteger prix = (BigInteger)associationProduitsPrix.get(check);

total = total.add(prix);
JOptionPane.showMessageDialog (null, "Total : " + total + " \u20ac");

}

}

}

});

}

class ListenerQuitter implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

System.exit(0);

}

}

public static void main(String[] args)

{

Frame f = new Cartee();

}

}




de plus, est ce que vous pouvez me mettre sur la voie pour un autre truc..

en efet je viens de m'apercevoir que l'on ne peut pas (celon mon code) prendre plusieurs fois le meme element comme par exemple : 2 melon et 3 salade, donc si quelqu'un pouvait me mettre sur un piste, m'aider quoi...

merci beaucoup !!
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
mrmabo
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Lun 25 Juil 2005 - 03:20 Répondre en citantRevenir en haut

juste une remarque rapport a ton code

c'est très brut

si tu veux des coups de main faut que rapidement on puisse se plonger dedans donc pour cela il faut des commentaires sa aide ceux qui essayent de t'aider mais sa t'aide toi aussi quand tu replonges dans un vieux truc

tu verras pour tes ptis si parmis les 5 tu en as une très vieille et que tu veux la réviser si t'as pas de commentaire c'est la galère
Voir le profil de l'utilisateurEnvoyer un message privé
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Lun 25 Juil 2005 - 03:31 Répondre en citantRevenir en haut

mrmabo a écrit:
juste une remarque rapport a ton code

c'est très brut

si tu veux des coups de main faut que rapidement on puisse se plonger dedans donc pour cela il faut des commentaires sa aide ceux qui essayent de t'aider mais sa t'aide toi aussi quand tu replonges dans un vieux truc

tu verras pour tes ptis si parmis les 5 tu en as une très vieille et que tu veux la réviser si t'as pas de commentaire c'est la galère


oui c'est vrai...
je vais y penser plus souvent merci !!
Voir le profil de l'utilisateurEnvoyer un message privé
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Lun 25 Juil 2005 - 04:18 Répondre en citantRevenir en haut

mrmabo a écrit:
juste une remarque rapport a ton code

c'est très brut

si tu veux des coups de main faut que rapidement on puisse se plonger dedans donc pour cela il faut des commentaires sa aide ceux qui essayent de t'aider mais sa t'aide toi aussi quand tu replonges dans un vieux truc

tu verras pour tes ptis si parmis les 5 tu en as une très vieille et que tu veux la réviser si t'as pas de commentaire c'est la galère


mais dit moi, est ce que tu peux m'aider?
me donner quelques pistes pour faire le prix total et pour mettre des quantités pour les differents elements que je propose?

parce que je suis un peu perdue, j'ai vu une classe Math mais je ne crois pas que se soit vraiment approprié pour ce que je cherche...

voila merci !!
Voir le profil de l'utilisateurEnvoyer un message privé
mrmabo
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Lun 25 Juil 2005 - 04:35 Répondre en citantRevenir en haut

je connais pas du tout le java :-/
et je pige pas tout ouverture facile m'a cassé la tête en +
Voir le profil de l'utilisateurEnvoyer un message privé
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Lun 25 Juil 2005 - 04:59 Répondre en citantRevenir en haut

mrmabo a écrit:
je connais pas du tout le java :-/
et je pige pas tout ouverture facile m'a cassé la tête en +


lollllllll
yearrr toi aussi tu aimes te prendre la tete sur des enigmes aussi tordues les une que les autres?? Wink
suis bloké sur une enigme Sad
ca commence a menervé Twisted Evil
t'en ais à quel niveau?
Voir le profil de l'utilisateurEnvoyer un message privé
mrmabo
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Lun 25 Juil 2005 - 05:43 Répondre en citantRevenir en haut

j'en etais a la 10 j'crois mais j'ai laché l'affaire j'ai fait un peu de php now je passe au c#
^^
eclate toi bien ac ce fichu truc moi sa me donne la nausé

et stop le hors sujet :p
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Lun 25 Juil 2005 - 09:07 Répondre en citantRevenir en haut

Ton problème viens du fait que ta fonction showMessageDialog est dans ta boucle while.
Code:

public void actionPerformed(ActionEvent e) {
  BigInteger total = new BigInteger("0");
  Enumeration enu = associationProduitsPrix.keys();
  while (enu.hasMoreElements()) {
    Checkbox check = (Checkbox) enu.nextElement();
    if (check.getState()) {
      BigInteger prix = (BigInteger) associationProduitsPrix.get(check);
      total = total.add(prix);
    }
  }
  JOptionPane.showMessageDialog(null, "Total : " + total+ " \u20ac");
}


Sinon ta fenetre ne se rafraichis pas automatiquement au démarrage, il faut la redimensionné pour afficher les boutons, pour corriger ce problème, sois tu appelle la méthode pack(), soit tu appelle la méthode setVisible() après avoir rajouter les composants.

Pour permettre d'avoir plusieurs fois le meme element ce que tu peux faire c'est au lieu d'une checkbox mettre un inputField et forcer la valeur en numérique, puis recupérer la valeur.

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Mar 26 Juil 2005 - 00:39 Répondre en citantRevenir en haut

queskispace a écrit:
Ton problème viens du fait que ta fonction showMessageDialog est dans ta boucle while.
Code:

public void actionPerformed(ActionEvent e) {
  BigInteger total = new BigInteger("0");
  Enumeration enu = associationProduitsPrix.keys();
  while (enu.hasMoreElements()) {
    Checkbox check = (Checkbox) enu.nextElement();
    if (check.getState()) {
      BigInteger prix = (BigInteger) associationProduitsPrix.get(check);
      total = total.add(prix);
    }
  }
  JOptionPane.showMessageDialog(null, "Total : " + total+ " \u20ac");
}


Sinon ta fenetre ne se rafraichis pas automatiquement au démarrage, il faut la redimensionné pour afficher les boutons, pour corriger ce problème, sois tu appelle la méthode pack(), soit tu appelle la méthode setVisible() après avoir rajouter les composants.

Pour permettre d'avoir plusieurs fois le meme element ce que tu peux faire c'est au lieu d'une checkbox mettre un inputField et forcer la valeur en numérique, puis recupérer la valeur.


c'est super!! ca marche!! suis trop happy, erreur à la c**
et sinon, je sais que c'est un peu le boxon mais je prefère que mon code marche et après je ferais quelque modif consernant "la mise en page"

je vais chercher quelques informations consernant l'inputField...

merci encore pour ton aide !!
Voir le profil de l'utilisateurEnvoyer un message privé
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Mar 26 Juil 2005 - 00:50 Répondre en citantRevenir en haut

mrmabo a écrit:
j'en etais a la 10 j'crois mais j'ai laché l'affaire j'ai fait un peu de php now je passe au c#
^^
eclate toi bien ac ce fichu truc moi sa me donne la nausé

et stop le hors sujet :p


j'avour cé prise de tete parfois Twisted Evil
oui alé stop, ta raison..
@ tte !!
Voir le profil de l'utilisateurEnvoyer un message privé
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum