Bon ,dernier essai, d'après la javadoc , il vaut mieux utiliser :
pour créer ton BigDecimal. Essaye ça...et dis-moi que ça marche stp...Code:
1
2
3
4 BigDecimal bd = BigDecimal.valueOf(0.0); produit.setPrix( bd );
Version imprimable
Bon ,dernier essai, d'après la javadoc , il vaut mieux utiliser :
pour créer ton BigDecimal. Essaye ça...et dis-moi que ça marche stp...Code:
1
2
3
4 BigDecimal bd = BigDecimal.valueOf(0.0); produit.setPrix( bd );
je met ça comme tas dit produit.setPrix( bd ); ? et le "prix", résultat de la requete?
cé qd meme chelou tout ça
parc que dans le code qui marche j'ai bien ça :
Code:
1
2
3 Produit produit = new Produit(); produit.setPrix(new BigDecimal(prix));
Ben, tu avais une erreur à l'initialisation des BigDecimal car tu initialisais sur une String = null;
C'était l'erreur de départ , et ça, ça ne POUVAIT pas marcher.
Donc essaye, pour initialiser tes BigDecimal avec une valeur double :
Code:
1
2
3
4 double monDouble = 0 ; BigDecimal bd = BigDecimal.valueOf( monDouble ); produit.setPrix( bd );
je remplace ça
par çaCode:
1
2 produit.setPrix(new BigDecimal(prix));
?Code:
1
2 produit.setPrix( bd );
parce que là le prix il n'est plus là..
Mais si, ton prix tu t'en serts pour constuire ton BigDecimal !!
T'as compris ??Code:
1
2
3
4 double prix = 31.40 ;//c'est juste un exemple... BigDecimal bd = BigDecimal.valueOf( prix ); produit.setPrix( bd );
si ton prix tu l'as en String, n'oublie pas de le convertir en double avant :
Dans ces exemples, 31.40 c'est un exemple de prix...Code:
1
2 double prix = Double.parseDouble( "31.40");
jcrois que je vais imprimer les 2 codes et les comparer demain. parce que je commence à tomber :aie:
merci en tout cas de m'avoir accordé un peu de ton temps.
je reviens demain pour te tenir au courant si j'arrive à trouver quelque chose en faisant la comparaison ou pas.
;)
Ouais, bonne nuit !
oki okiiiiii
je suis trop à l'ouest là lol
je fais ça demain!
merci encore pour ton aide et je te tiens au courant de l'évolution ;)
alors me revoici :
j'ai initialiser comme suit :
puisCode:
1
2 double prixini = 0 ;
et j'ai comme erreur :Code:
1
2
3
4
5
6
7
8
9
10
11 String prix = props.getProperty(resultat.getString("prix")); prixx = new JLabel(prix); double prixini = Double.parseDouble(prix); BigDecimal bd = BigDecimal.valueOf( prixini ); Produit produit = new Produit(); produit.setPrix( bd );
grrrrrrrrrrrrCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 java.lang.NullPointerException at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) at java.lang.Double.parseDouble(Unknown Source) at carte.<init>(carte.java:79) at AcceuilCrepe.actionPerformed(AcceuilCrepe.java:62) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
prix vaut null
Il faut regarder du cote de
pour savoir pourquoiCode:String prix = props.getProperty(resultat.getString("prix"));
j'ai fait ça :
et dans la boite de dialogue, je n'ai aucun chiffre qui s'affiche, donc c'est bien là :Code:
1
2 JOptionPane.showMessageDialog(null,props.getProperty(resultat.getString("prix")));
que ça cloche...:evilred:Code:
1
2 String prix = props.getProperty(resultat.getString("prix"));
bon en faite je me sui renseigné et l'utilisation de Properties concerne les fichiers textes(que j'utilisais pour la meme application) mais maintenant j'utilise une BDD mysql..
donc en faite c'est pour ça que ça ne marchait pas..
le probleme est reglé!!!!!!!
le code :
merci encore !!!!!!Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; import java.util.Enumeration; import java.util.Hashtable; import java.util.Properties; import java.math.BigDecimal; import java.io.*; import java.lang.*; public class carte extends JFrame implements ActionListener //, ItemListener //implements ItemListener { // Hashtable() : permet de stocker des valeurs en les associant à des // identificateurs uniques calculés à partir de clés private Hashtable associationProduitsPrix = new Hashtable(); private JPanel panel;//Déclaration de l'objet JPanel private JLabel prixx, type; private JButton bouton; private Checkbox sale,chek; public carte() { JFrame frame = new JFrame(); frame.setSize(300,700); frame.setVisible(true); pack(); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); panel = new JPanel(); frame.setContentPane(panel); panel.setLayout(new FlowLayout(FlowLayout.LEFT,5,2)); String pilote = "com.mysql.jdbc.Driver"; try { //Chargement de mon pilote Class.forName(pilote); //Connexion à ma base mysql avec mon login et mot de passe Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/creperie","root","root"); //Création de mon statement qui va me permettre d'executer mes requetes Statement instruction = connexion.createStatement(); ResultSet resultatt = instruction.executeQuery("SELECT DISTINCT type FROM carte "); while(resultatt.next()) { type = new JLabel(resultatt.getString("type")); panel.add(type); Statement instructionn = connexion.createStatement(); ResultSet resultat = instructionn.executeQuery("SELECT nom, prix FROM carte WHERE type = '"+resultatt.getString("type")+"'"); while(resultat.next()) { String nom = resultat.getString("nom"); sale = new Checkbox(nom); panel.add(sale); String prix = resultat.getString("prix"); prixx = new JLabel(prix); Produit produit = new Produit(); produit.setPrix(new BigDecimal(prix)); associationProduitsPrix.put(sale,produit); } } } catch(Exception e) { e.printStackTrace(); } bouton = new JButton("ticket"); panel.add(bouton); bouton.addActionListener(this);//On ajoute la fenêtre en tant qu'écouteur du bouton*/ } /*Checkbox che; public void itemStateChanged(ItemEvent evt) { che= (Checkbox)evt.getSource(); }*/ public void actionPerformed(ActionEvent e) { if(e.getSource() == bouton) { BigDecimal total = new BigDecimal("0.00"); //initialise à 0 Enumeration enu = associationProduitsPrix.keys(); while (enu.hasMoreElements()) { Checkbox check = (Checkbox)enu.nextElement(); if (check.getState()) { Produit produit = (Produit)associationProduitsPrix.get(check); BigDecimal prix = produit.getPrix(); total = total.add(prix); } } JOptionPane.showMessageDialog(null, "total :" +total); } } }