Toon posts:

[Java] Index bepalen van radiobutton array

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heb in app. een array van JRadioButtons (11 stuks).. Nu wil ik natuurlijk de acties daarvan opvangen en dat wilde ik als volgt doen:
Java:
1
2
3
4
5
6
if (ev.getSource() instanceof JRadioButton)
{           
        JRadioButton radioBtn = (JRadioButton)ev.getSource();
        System.out.println("Test2");
    int index = Integer.valueOf(radioBtn.getActionCommand()).intValue();
}


Nu krijg ik de volgende foutmelding bij het runnen:
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
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:468)
    at java.lang.Integer.parseInt(Integer.java:497)
    at MainPanel.actionPerformed(MainPanel.java:127)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:269)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1766)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


Wat doe ik fout? Deze regels werken namelijk wel voor het opvragen van de index bij een array van checkboxes die ik ook gebruik...

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:00
Wat je fout doet staat toch mooi in de exception uitgelegd ?
Blijkbaar wil je een "" (lege string) naar een integer omzetten, en dat lukt natuurlijk niet.

https://fgheysels.github.io/


  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 14-01 21:58

JaWi

maak het maar stuk hoor...

Een van je radio buttons heeft geen action command (of de lege string als action command) gezet. Hiermee heb je ook direct een van je zwakke punten van je routine aangemerkt ;) IMO zou je beter je radio buttons in een lijstje bijhouden en dan hierover itereren om de juiste (lees: de event-vurende) te vinden...

edit:
te laat...

[ Voor 5% gewijzigd door JaWi op 23-05-2005 10:58 ]

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.


Verwijderd

Topicstarter
hmm.. ik was idd vergeten om een value te zetten op de radiobuttonarray (wat ik dus bij de chackboxes wel had gedaan)..

maar ik zal me eens verdiepen in die lijsten.. misschien werkt dat idd fijner.. vond het al heel fijn dat dit array werkte ;-) bedankt iig!