Java Radio Button, Button Group und List

JavaButtonList

Beim Programmieren muss es oft verschiedene Auswahlfelder geben. Sei es bei einer Registrierung, bei der ausgewählt werden muss, ob die Person männlich oder weiblich ist. Hier sollte jeweils nur eine Auswahl möglich sein. In einem anderen Programm soll ein User beispielsweise auch eine Stückzahl aus einer Liste auswählen können. In diesem Artikel zeige ich euch, wie ihr diese Radiobuttons und Listen in euren Java-Programmen verwenden könnt.

Zunächst wählt ihr im Design-Modus bei den Swing-Controls, wie ihr auf dem Screenshot sehen könnt, die Liste bzw. die Radiobuttons aus. Zieht diese in eure Java-Anwendung und platziert sie dort, wo ihr sie später haben möchtet. Wenn ihr die Radiobuttons ausgewählt habt, müsst ihr noch die Button-Group ebenfalls in eure Anwendung hineinziehen.

Java-GUI-Design
Die grafische Oberfläche eurer Anwendung sollte jetzt ca. so aussehen wie auf dem Screenshot.

Listeinträge bearbeiten

Wenn ihr jetzt die Listeneinträge bearbeiten möchtet, markiert ihr eure Liste und macht einen Rechtsklick darauf und klickt anschließend auf „Properties“.

jList-Properties
Danach bekommt ihr dieses Fenster zu Gesicht. Dort klickt ihr in der Zeile model auf die im Bild markierten „…“.

jList-model
Anschließend öffnet sich ein weiteres Fenster. Dort könnt ihr eure gewünschten Listeneinträge eingeben. In jeder Zeile gebt ihr einen Listeneintrag ein, so wie sie später in eurer Liste erscheinen sollen. Das Ganze bestätigt ihr mit „OK“.

jList-selectionMode
Wenn ihr jetzt möchtet, dass immer nur ein Listenelement ausgewählt werden kann, wählt ihr bei den Properties in der Zeile SelectionMode Single aus. Danach klickt ihr auf den Button Close und eure Liste ist fertig bearbeitet.

Radio-Buttons einer Gruppe hinzufügen

Welche Beschreibung rechts neben den Radiobuttons steht, könnt ihr wie gewohnt mit einem Rechtsklick auf den Button und „Edit Text“ bearbeiten. Aber jetzt muss man die Buttons noch zu einer Gruppe hinzufügen, so dass immer nur ein Button ausgewählt werden kann. Dazu markiert ihr beide Buttons und macht einen Rechtsklick und klickt auf „Properties“.

jRadioButton-ButtonGroup
Dort wählt ihr in der Zeile buttonGroup eure Button-Gruppe aus. Hier in dem Beispiel heißt diese „buttonGroup1“. Das Ganze bestätigt sie wieder mit dem Close-Button. Danach sind eure beiden Radiobuttons zu einer Gruppe zusammengefasst und es kann immer nur einer ausgewählt werden.

Ausgewählten Listeintrag auslesen

In seinem Programm möchte man natürlich noch auslesen können, welches Listenelement gerade ausgewählt ist. Ich habe dazu hier einen kleinen Beispielcode erstellt.

 
        int listnr = jList1.getAnchorSelectionIndex();
        switch (listnr) {
            case -1:
                System.out.println("Kein Punkt ausgewählt");
                break;
            case 0:
                System.out.println("Punkt 1 ausgewählt");
                break;
            case 1:
                System.out.println("Punkt 2 ausgewählt");
                break;
            case 2:
                System.out.println("Punkt 3 ausgewählt");
                break;
        }

In der ersten Zeile wird die aktuell ausgewählte Position ausgelesen und als Zahl in der Variablen listnr gespeichert.

In den nächsten Zeilen wird die Switch-Case-Anweisung durchgeführt. Es wird geschaut, welche Zahl in der Variablen listnr gespeichert wurde. Wenn kein Listenelement ausgewählt wird, steht in der Variablen die Zahl –1. Wenn das der Fall ist, springt das Programm in die erste Case-Anweisung und zwar in der Zeile 3, und bearbeitet den dort angegebenen Code und gibt auf der Kommandozeile aus, das kein Punkt ausgewählt wurde.

Wenn der Benutzer das 1. Element aus der Liste ausgewählt hat, wird in der Variablen listnr die Zahl 0 gespeichert und das Programm springt zu „Case 0“ in die Zeile 6. So geht es mit den ganzen anderen Auswahlelementen ebenfalls weiter.

Ausgewählten Radiobutton auslesen

Hier habe ich auch wieder ein kleines Codebeispiel, wie man auslesen kann, welche der Radio-Buttons ausgewählt wurde. Dazu muss man zunächst das Swing-ButtonModel importieren. Dazu fügt ihr Folgendes oben in euren Code ein:

 import javax.swing.ButtonModel;

Danach könnt ihr mit folgendem Codeschnipsel arbeiten:

 
        ButtonModel selectedModel = buttonGroup1.getSelection();
        if (jRadioButton1.getModel() == selectedModel) {
            System.out.println("Button 1");
        } else if (jRadioButton2.getModel() == selectedModel) {
            System.out.println("Button 2");
        }

In der ersten Zeile wird das aktuell ausgewählte Button-Model von der ButtonGroup mit dem Namen “buttonGroup1” in der Variablen “selectedModel” gespeichert.

In der 2. Zeile wird mit einer If-Anweisung geprüft, ob das in der Variablen selectedModel gespeicherte Button-Model mit dem ersten Radio-Button übereinstimmt. Wenn das der Fall ist, wird die If-Anweisung durchgeführt, wenn nicht, springt das Programm zur nächsten If-Abfrage. Dort wird Geprüft ob das Button-Modell aus der Variablen mit dem zweiten Radio-Button übereinstimmt. Wenn das zutrifft, wird diese If-Anweisung abgearbeitet.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*