Hallo allemaal,
ik ben bezig met een formuliertje van een barrekening. Het programma haalt de artikelen uit een database en zet deze in een combobox. Door een artikel te selecteren en het aantal in te vullen, kun je artikelen toevoegen aan de rekening, welke opgesomd wordt.
De prijs wordt ook uit de database gehaald. Omdat een getal als 11,00 niet bestaat, laat ik hier een Numberformat op los:
Vervolgens laat ik deze los op de textfields die aangepast moeten worden aan dit format, productprijs en totaalprijs:
Het gaat hier fout bij het textfield txtTotprijs. Het eerste artikel wordt juist toegevoegd, en de getallen in alle velden juist weergegeven. Ook het aantal ophogen van dat artikel werkt goed.
Echter, als ik een nieuw artikel toevoeg (er wordt dan een nieuwe rij textfields (artikel, aantal, prijs) aangemaakt en onder de bestaande regel geplaatst), krijg ik een NumberFormatException:
Als ik het NumberFormat op txtTotprijs weglaat, dus alleen op de artikelprijzen uitvoer, dan doet het programma het wel gewoon.
Wie weet de oplossing voor dit, voor mij, rare probleem??
Roy
ik ben bezig met een formuliertje van een barrekening. Het programma haalt de artikelen uit een database en zet deze in een combobox. Door een artikel te selecteren en het aantal in te vullen, kun je artikelen toevoegen aan de rekening, welke opgesomd wordt.
De prijs wordt ook uit de database gehaald. Omdat een getal als 11,00 niet bestaat, laat ik hier een Numberformat op los:
Java:
1
2
| NumberFormat formatter = NumberFormat.getNumberInstance(); formatter.setMinimumFractionDigits(2); |
Vervolgens laat ik deze los op de textfields die aangepast moeten worden aan dit format, productprijs en totaalprijs:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| try { //Query uitvoeren welke de prijs van het gekozen artikel (strSelect) uit de database haalt ResultSet select = myStat.executeQuery("Select prijs from bar where artikel = '"+strSelect+"'"); int intAantal = Integer.parseInt(txtAantal.getText()); while(select.next()) { float fltPrijs =select.getFloat("prijs"); arrArtikel[intLoop].setText(strSelect); arrAantallijst[intLoop].setText(String.valueOf(intAantal)); arrPrijs[intLoop].setText(String.valueOf(formatter.format(fltPrijs*intAantal))); float fltOldtot = Float.parseFloat(txtTotprijs.getText()); float fltNewtot =(fltPrijs*intAantal)+fltOldtot; txtTotprijs.setText(String.valueOf(formatter.format(fltNewtot))); } } |
Het gaat hier fout bij het textfield txtTotprijs. Het eerste artikel wordt juist toegevoegd, en de getallen in alle velden juist weergegeven. Ook het aantal ophogen van dat artikel werkt goed.
Echter, als ik een nieuw artikel toevoeg (er wordt dan een nieuwe rij textfields (artikel, aantal, prijs) aangemaakt en onder de bestaande regel geplaatst), krijg ik een NumberFormatException:
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
| java.lang.NumberFormatException: 11,00
at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1213)
at java.lang.Float.parseFloat(Float.java:203)
at cateringformulier.actionPerformed(cateringformulier.java:88)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:258)
at java.awt.Component.processMouseEvent(Component.java:5021)
at java.awt.Component.processEvent(Component.java:4818)
at java.awt.Container.processEvent(Container.java:1525)
at java.awt.Component.dispatchEventImpl(Component.java:3526)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3359)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3074)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3004)
at java.awt.Container.dispatchEventImpl(Container.java:1568)
at java.awt.Window.dispatchEventImpl(Window.java:1581)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98) |
Als ik het NumberFormat op txtTotprijs weglaat, dus alleen op de artikelprijzen uitvoer, dan doet het programma het wel gewoon.
Wie weet de oplossing voor dit, voor mij, rare probleem??
Roy
[ Voor 2% gewijzigd door RvL op 24-04-2003 10:57 . Reden: overzichtelijker gemaakt ;-) ]
Liefde maakt een smal bed breed!
Nu de dekens nog...