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
Auteur |
Message |
oceane751
Forumeur fréquent
Sexe:
Messages: 93
|
Posté le:
Mar 16 Aoû 2005 - 16:40 |
|
bon et bien je suis en pleine galère...
je ne sais pas où aller dans mon code
je veux juste calculer le prix en fonction de checkbox coché , mais rien a faire ça marche pas..
je vous remets le code (et oui encore )
Code: |
package com.carte_creperie.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.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.math.BigInteger;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.swing.JOptionPane;
import javax.swing.*;
import java.awt.Choice;
import java.util.Properties;
import java.io.*;
import java.awt.*;
public class carte extends Frame implements ActionListener{
Properties props = new Properties();
Hashtable associationProduitsPrix;
private GridLayout grid;
private Label entree;
private Checkbox salade;
private Label lab;
private Label lab2;
private Label lab3;
private Choice maCombo;
private Checkbox melon;
private Label cs;
private Checkbox jf;
private Checkbox complete;
private Label csu;
private Checkbox su;
private Checkbox choc;
private Label boi;
private Checkbox coca;
private Checkbox cidre;
private Button bout;
private Button quitter;
class WindowEventHandler extends WindowAdapter {
public void windowClosing(WindowEvent we) {
dispose();
}
}
public carte() {
super("creperie");
addWindowListener(new WindowEventHandler());
// Lit les données du fichier de propriétés
Properties props = new Properties();
try {
props.load(new FileInputStream("carte.txt"));
} catch (FileNotFoundException e) {
System.err.println("Fichier carte.txt non trouvé");
} catch (IOException e) {
System.err.println("Impossible de lire le fichier carte.txt");
}
// Création des champs
// grid = new GridLayout(5, 0); //(ligne,colonne)
TextField text = new TextField ("numero de table");
entree = new Label("entree");
lab = new Label(props.getProperty("prix"));
salade = new Checkbox(props.getProperty("libelle"));
maCombo = new Choice();
lab2 = new Label(props.getProperty("prix2"));
melon = new Checkbox(props.getProperty("libelle2"));
cs = new Label("crepe salee");
lab3 = new Label(props.getProperty("prix3"));
jf = new Checkbox(props.getProperty("libelle3"));
complete = new Checkbox("complete");
csu = new Label("crepe sucree");
su = new Checkbox("crepe au sucre");
choc = new Checkbox("crepe au chocolat");
boi = new Label("boisson");
coca = new Checkbox("coca cola");
cidre = new Checkbox("cidre");
bout = new Button("ticket");
quitter = new Button("quitter l'application");
// Initialise la fenêtre
setSize(250, 250);
setLayout(new FlowLayout()); //sinon n'affiche qu'un seul element ds la fenetre
setBackground(Color.yellow);
setForeground(Color.black);
// Ajoute les champs à la fenêtre
add(text);
add(entree);
add(salade);
add(lab);
add(maCombo);
add(lab2);
add(melon);
maCombo.add("1");
maCombo.add("2");
add(cs);
add(lab3);
add(jf);
add(complete);
add(csu);
add(su);
add(choc);
add(boi);
add(coca);
add(cidre);
add(bout);
add(quitter);
// quitter.addActionListener(this);
// Initialise les prix
}
private void initPrix() {
associationProduitsPrix = new Hashtable();
associationProduitsPrix.put(salade, new BigInteger(props.getProperty("prix")));
associationProduitsPrix.put(melon, new BigInteger(props.getProperty("prix2")));
}
// Initialise les évènements des boutons
private void initBoutonsListeners() {
bout.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
BigInteger total = new BigInteger("0"); //initialise à 0
Enumeration enu = associationProduitsPrix.keys();
while (enu.hasMoreElements())
{
Checkbox check = (Checkbox) enu.nextElement();
if (check.getState()) // si un check a été coché
{
BigInteger prix = (BigInteger)
associationProduitsPrix.get(check);
total = total.add(prix);
}
}
JOptionPane.showMessageDialog(null,
"Total : " + total + " \u20ac");
}
});
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == quitter) {
dispose();
System.exit(0);
}
}
public static void main(String[] args) {
Frame f = new carte();
f.pack();
f.show();
}
}
|
|
|
|
|
|
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. |
findwin
Forumeur occasionnel
Messages: 29
|
Posté le:
Mer 17 Aoû 2005 - 06:36 |
|
je ne connais pas java, mais il me semble que tu tu devrais recuperer les valeur de ta hashtable grace aux noms ou libélés des checkbox, pas avec les check box eux même...
un truc du genre:
Code: |
while (enu.hasMoreElements())
{
Checkbox check = (Checkbox) enu.nextElement();
if (check.getState()) // si un check a été coché
{
BigInteger prix = (BigInteger)
associationProduitsPrix.get(check.getLabel());
total = total.add(prix);
}
}
|
|
|
|
|
|
queskispace
Accro à Web-IG
Sexe:
Messages: 194
Localisation: En ce moment, derrière mon pc
|
Posté le:
Mer 17 Aoû 2005 - 18:36 |
|
En fait il n'y a pas de probleme avec la table de hashage, tu peux te servir des objets puisqu'il y'a une méthode getHashVal pour chaque objets, et c'est elle qui sera appellé lors de l'insertion dans la table de hashage.
Pour ton problème j'ai pas pus tester comme il manque un fichier, mais je me demande si ton problème ne viens pas parsque tu utilise la classe BigInteger ou si ton fichier de Propriété contient les bonnes valeurs. Essai de verifier deja que ta table de hashage contiens les bonnes valeurs.
Je te conseille aussi d'utiliser ta propre classe pour les entier avec juste un getVal et un setVal pour encapsuler les entiers, ca t'evitera d'utiliser la classe BigInteger qui n'est pas vraiment faite pour des calculs simple et en plus tu utilisera moins de mémoire (meme si ca ne doit pas avoir trop d'impact dans ton programme)
Si tu peux poster le fichier de Propriété je pourrais peut etre un peu plus t'aider.
Bonne chance |
_________________ Tout a une fin sauf le saucisson qui en a deux |
|
|
|
|
|
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
|