# ButtonGroup auswerten



## Spoob (28. Mai 2007)

Hallo,

ich habe bereits google und die Boardsuche genutzt aber nichts gefunden.
Mein Problem:

Ich möchte abfragen welcher Button in der ButtonGroup ausgewählt ist.
Ich habe das hier versucht was leider nicht klappt.


```
int auswahl = buttonGroupName.getSelectedIndex();
```

Da wird mir aber immer ein Fehler angezeigt.
Dann habe ich mir eine andere möglichkeit ausgedacht:


```
public int auswahl;
```

Danach ein ActionListener:


```
private void auwahlRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {       
auswahl = 1;
}
```

Das ist aber bei vielen RadioButtons sehr umstandlich.

Schon mal danke für hilfen!

Spoob


----------



## kleiner_held (28. Mai 2007)

```
buttonGroup.getSelection();
```
gibt dir das selektierte ButtonModel. Anhand von

```
buttonModel.getActionCommand();
```
kannst du die unterschiedlichen RadioButtons dann unterscheiden.


----------



## Spoob (28. Mai 2007)

Kannst du mir da ein Beispiel geben?
Ich kann mir so nicht votstellen wie ich die einbaue...

Spoob


----------



## kleiner_held (28. Mai 2007)

Du gibst deinen RadioButtons beim Erstellen passende ActionCommands und kannst daran dann den aktuell selektierten RadioButton erkennen.


```
public class ButtonGroupSample
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        final ButtonGroup buttonGroup = new ButtonGroup();
        JPanel panel = new JPanel (new GridLayout(0 , 1));
        
        addRadioButton(panel, buttonGroup, "Eins", "1");
        addRadioButton(panel, buttonGroup, "Zwo", "2");
        addRadioButton(panel, buttonGroup, "Drei", "3");
        addRadioButton(panel, buttonGroup, "Vier", "4");
        
        frame.getContentPane().add(panel);
        frame.getContentPane().add(new JButton(new AbstractAction("Check Selection") 
        {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println(buttonGroup.getSelection().getActionCommand());
            }    
        }), BorderLayout.SOUTH);
        
        frame.pack();
        frame.setVisible(true);
    }
    
    private static void addRadioButton(JPanel panel, ButtonGroup buttonGroup, String text, String actionCommand)
    {
        JRadioButton radioButton = new JRadioButton(text);
        radioButton.setActionCommand(actionCommand);
        if (buttonGroup.getButtonCount() == 0)
        {
            radioButton.setSelected(true);
        }
        panel.add(radioButton);
        buttonGroup.add(radioButton);
    }
}
```


----------



## Spoob (28. Mai 2007)

:?:  ich verstehs einfach nicht.
Trozdem vielen Dank


----------



## SlaterB (28. Mai 2007)

ein anderes Beispiel ist 
http://java.sun.com/docs/books/tutorial/uiswing/components/button.html#radiobutton

aber auch dort bekommt man nicht den Index des gewählten Buttons,
diese Funktion scheint standardmäßig nicht gegeben


----------

