News Ticker

Java Radio Button, Button Group und List

Java-Button-List Beim Programmieren ist es ja oft so das es verschiedene Auswahlfelder geben muss. Sei es z.B. bei einer Registrierung ob jemand männlich oder weiblich ist, hier sollte jeweils nur eine Auswahl möglich sein. Oder bei einem anderen Programm soll ein User z.B. auch einer Liste die Stückzahl auswählen können. In diesem Artikel zeige ich euch wie ihr diese Radio Buttons 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 List bzw. Radio Buttons aus. Diese zieht ihr in eure Java Anwendung und Platziert sie dort wo ihr sie später haben möchtet. Wenn Ihr die Radio Buttons ausgewählt habt müsst ihr noch die Button Group ebenfalls in eure Anwendung hinein ziehen.

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 Listeinträ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 das 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 Radio Buttons 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 das 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 in in der Zeile buttonGroup eure Butten Gruppe aus hier in dem Beispiel heißt diese “buttonGroup1”. Das ganze bestätigt ihr wieder mit dem Close Button, danach sind eure beiden Radio Buttons zu einer Gruppe zusammen gefasst 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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        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 angegeben 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 Radio Button 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 eurem Code ein.

import javax.swing.ButtonModel;

Danach könnt ihr mit folgendem Codeschnipsel arbeiten:

1
2
3
4
5
6
        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 über eine 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 Model aus der Variablen mit dem zweiten Radio Button überein stimmt. Wenn das zutrifft wird diese If Anweisung abgearbeitet.