Literatur

ButtonGroup

Die Klasse ButtonGroup dient zur Gruppierung von Schaltflächen. So wird sichergestellt, dass nur ein Element der Gruppe selektiert werden kann.

Beispiel: In einer Anwendung wird nach der Farbe der Banane gefragt. Die Auswahlmöglichkeiten "gelb" und "blau" sollen in Form von JRadioButtons zur Verfügung stehen. Da logischerweise aber nur eines der beiden Optionen ausgewählt werden kann, gruppiert man diese in einer ButtonGroup. Diese gewährleistet, dass nur ein Element selektiert werden kann. Sobald nämlich ein Element der Gruppe selektiert wird, werden alle anderen auf "deselektiert" gestellt. Ohne Verwendung der ButtonGroup würde es erhöhten Programmieraufwand kosten, diese Funktionalität zu realisieren. Sinn macht die Gruppierung von Schaltflächen vor allem bei den Komponenten JCheckBox (bzw. JCheckBoxMenuItem), JToggleButton und JRadioButton (JRadioButtonMenuItem) Sinn.

Die Klasse ButtonGroup besitzt nur den Standardkonstruktor.

Am oben genannten Beispiel (Frage nach der Bananen-Farbe) möchten wir Ihnen zeigen, wie man JRadioButtons in einer ButtonGroup zusammengefasst.

 
import javax.swing.*;
 
public class JRadioButtonBeispiel
{
    public static void main(String[] args)
    {
        JFrame meinJFrame = new JFrame();
        meinJFrame.setTitle("JButtonGroup Beispiel");
        meinJFrame.setSize(250,250);
        JPanel panel = new JPanel();
 
        JLabel frage = new JLabel("Welche Farbe hat die Banane?");
        panel.add(frage);
 
        //JRadioButtons werden erstellt
        JRadioButton auswahl1 = new JRadioButton("gelb");
        JRadioButton auswahl2 = new JRadioButton("blau");
 
        //ButtonGroup wird erstellt
        ButtonGroup gruppe = new ButtonGroup();
 
        //JRadioButtons werden zur ButtonGroup hinzugefügt
        gruppe.add(auswahl1);
        gruppe.add(auswahl2);
 
        //JRadioButtons werden Panel hinzugefügt
        panel.add(auswahl1);
        panel.add(auswahl2);
 
        meinJFrame.add(panel);
        meinJFrame.setVisible(true);
 
    }
}

Nach dem wir die beiden JRadioButtons erzeugt haben, erstellen wir zusätzlich ein ButtonGroup-Objekt und fügen anschließend unsere JRadioButtons mit der Methode add der ButtonGroup hinzu.

Ausgeführt sollten sie folgende Oberfläche sehen:

ButtonGroup Beispiel

Sie können nun einen der beiden JRadioButtons selektieren, der jeweils andere wird automatisch deselektiert.

Die Klasse ButtonGroup besitzt einige Methoden. Die wichtigsten möchten wir in folgender Tabelle näher erläutern:

Methode Beschreibung
void add(AbstractButton b) Diese Methode fügt eine Schaltfläche der ButtonGroup hinzu.
void clearSelection() Mit dieser Methode wird die Auswahl der Schaltflächen, welche der ButtonGroup angehören, wieder zurückgesetzt, so dass keine Schaltfläche ausgewählt ist.
int getButtonCount() Diese Methode liefert die Anzahl der Schaltflächen zurück, welche sich in der ButtonGroup befinden.
Enumeration getElements() Hier wird eine Auflistung aller zur ButtonGroup zugehörigen Schaltflächen zurückgegeben.
ButtonModel getSelection() Diese Methode liefert das ButtonModel der ButtonGroup zurück.
void remove(AbstractButton b) Diese Methode entfernt eine Schaltfläche aus der ButtonGroup.