JRadiobutton

eys

Mitglied
Hi guys,

folgendes vermutlich einfaches Problem ^^

Ich habe zwei RadioButtons und jetzt müsste ich aber irgendwie abfragen welcher der beiden aktiv ist.
Könnt ihr mir helfen wo und wie das rein muss?

Also vom prinzip her:

Java:
String gruppe;

if(radiobutton1 == aktiv){
    gruppe = "Sekretariat";
}
else if(radiobutton2 == aktiv){
   gruppe = "Student";
}

aktueller Code:

Java:
  //______________________________RADIOBUTTON
                JRadioButton optionSek = new JRadioButton();
                JRadioButton optionStud = new JRadioButton();

                //Register a listener for the radio buttons
                ItemListener optListener = new ItemListener() {
                    public void itemStateChanged( ItemEvent e ) {
                        System.out.print( ((JRadioButton) e.getItem()).getText() );
                       System.out.println( e.getStateChange() == ItemEvent.SELECTED ?
                                            " selected" : " unselected" );
                        
                  }
                };
                optionSek.addItemListener(optListener);
                optionSek.setSelected(true);
                optionStud.addItemListener(optListener);

                inputPanel.add("Sekretariat", optionSek);
                inputPanel.add("Student", optionStud);
 

Foermchen82

Top Contributor
Du packst deine RadioButtons in eine ButtonGroup. So stellst du sicher, dass nur einer Selektiert ist. Dann gehts du über deine Buttons und schaust welcher selektiert ist. Außerdem kannst du nicht an beide Buttons die gleiche Listenerinstanz hängen. Geht zwar, macht aber keinen sinn. Mach an jeden einen Listener und du siehst welcher selektiert ist.
 

eys

Mitglied
Ok die Buttongroup hatte ich schon, habs nur vergessen zu posten ^^

Java:
         //Group the radio buttons.
                ButtonGroup radioButtongroup = new ButtonGroup();
                radioButtongroup.add(optionSek);
                radioButtongroup.add(optionStud);                

                if(optionSek.isSelected()== true){
                    gruppe = "Sekretariat";
                }
                else if(optionStud.isSelected()==true){
                    gruppe = "Student";
                }
Nach der Group habe ich die if-Abfrage in der ich die String Variable "gruppe" auf "Sekretariat" oder "Student" setzen will je nachdem welcher Radiobutton gewählt wurde. Diese Variable wird später übergeben. Aber ich bekomme immer nur die erste Option "Sekretariat" übergeben. Woran liegts?
 

Momolin

Aktives Mitglied
Hallo,

Du machst das schon ganz richtig: in der
Java:
public void itemStateChanged(ItemEvent e)
fragt man das ab.
hier ein Beispiel:
Java:
package radio;

import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;

public class Radio extends JFrame implements ItemListener {

	private JRadioButton r1;
	private JRadioButton r2;

	public Radio() {
		this.setLayout(new GridLayout(2, 1));
		ButtonGroup g = new ButtonGroup();
		r1 = new JRadioButton("Student");
		r2 = new JRadioButton("Sekretariat");
		g.add(r1);
		g.add(r2);
		r1.setSelected(true);

		r1.addItemListener(this);
		r2.addItemListener(this);

		this.add(r1);
		this.add(r2);

		this.setLocationRelativeTo(null);
		this.setSize(250, 90);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Radio app = new Radio();
		app.setVisible(true);

	}

	@Override
	public void itemStateChanged(ItemEvent e) {
		if (r1.isSelected())
			this.setTitle(r1.getText());
		else if (r2.isSelected())
			this.setTitle(r2.getText());

	}
}
 

eys

Mitglied
Yap denke doch ^^
Java:
 //______________________________RADIOBUTTON
                JRadioButton optionSek = new JRadioButton();
                JRadioButton optionStud = new JRadioButton();

                // Listener für RadioButtons
                ItemListener optListener1 = new ItemListener() {
                    public void itemStateChanged( ItemEvent e ) {
                       
                  }
                };
                ItemListener optListener2 = new ItemListener() {

                    public void itemStateChanged(ItemEvent e) {
                        
                    }
                };
                optionSek.addItemListener(optListener1);
                optionSek.setSelected(true);
                optionStud.addItemListener(optListener2);

                inputPanel.add("Sekretariat", optionSek);
                inputPanel.add("Student", optionStud);

                //Group the radio buttons.
                ButtonGroup radioButtongroup = new ButtonGroup();
                radioButtongroup.add(optionSek);
                radioButtongroup.add(optionStud);                

                if(optionSek.isSelected()== true){
                    gruppe = "Sekretariat....";
                }
                else if(optionStud.isSelected()==true){
                    gruppe = "Student";
                }
 

Momolin

Aktives Mitglied
Hallo

diese Methoden werden bei einem Zustandswechsel aufgerufen

Java:
                // Listener für RadioButtons
                ItemListener optListener1 = new ItemListener() {
                    public void itemStateChanged( ItemEvent e ) {
                       
                  }
                };

                ItemListener optListener2 = new ItemListener() {

                    public void itemStateChanged(ItemEvent e) {
                        
                    }
                };
dieser Bereich wird nur einmal aufgerufen, die obigen Methoden, die bei die leer sind, dagegen bei jedem Zustandswechsel
Java:
                if(optionSek.isSelected()== true){
                    gruppe = "Sekretariat....";
                }
                else if(optionStud.isSelected()==true){
                    gruppe = "Student";
                }

Grüße
 

eys

Mitglied
Ok ich verstehe was ihr meint, aber ich kann jetzt meine If-schleife nicht in die Listener setzen.
Die Listener melden jedes mal ein event wenn der radiobutton gewählt oder abgewählt wurde, aber wie setze ich das was ich in meiner IF-schleife probiert hab in den listenern um?

hm... nee so gehts nicht, was stimmt nicht an meinen Listenern? die erkennen die Radiobuttons nicht..

Java:
JRadioButton optionSek = new JRadioButton();
                JRadioButton optionStud = new JRadioButton();
                optionSek.setSelected(true);
// Listener für RadioButtons
                ItemListener optListener1 = new ItemListener() {
                    public void itemStateChanged( ItemEvent e ) {
                        if(optionSek.isSelected()==true){
                            gruppe = "Sekretariat";
                        }
                       
                  }
                };
                ItemListener optListener2 = new ItemListener() {

                    public void itemStateChanged(ItemEvent e) {
                        if(optionStud.isSelected()==true){
                            gruppe = "Student";
                        }
                    }
                };
                optionSek.addItemListener(optListener1);                
                optionStud.addItemListener(optListener2);
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
P Wie lese ich einen jRadioButton aus? AWT, Swing, JavaFX & SWT 21
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
A Swing JRadioButton zeichnen nicht AWT, Swing, JavaFX & SWT 4
W Bei Programmstart jRadioButton automatisch auswählen AWT, Swing, JavaFX & SWT 2
W JRadioButton sauber untereinander anordnen AWT, Swing, JavaFX & SWT 3
G JRadioButton aktualisieren nicht... AWT, Swing, JavaFX & SWT 10
P JRadioButton.isSelected() Problem AWT, Swing, JavaFX & SWT 10
M Makierung bei JRadioButton entfernen AWT, Swing, JavaFX & SWT 5
H Swing Auf Änderung bei JRadioButton reagieren. AWT, Swing, JavaFX & SWT 3
Y JRadioButton soll JTextBox aktivieren UND deaktivieren AWT, Swing, JavaFX & SWT 3
Zettelkasten Swing JRadioButton festlegen AWT, Swing, JavaFX & SWT 2
M jradiobutton in jtable AWT, Swing, JavaFX & SWT 4
M JRadioButton refresh AWT, Swing, JavaFX & SWT 5
Guybrush Threepwood JRadioButton transparent AWT, Swing, JavaFX & SWT 2
J LayoutManager Layout über JRadiobutton Wechseln AWT, Swing, JavaFX & SWT 6
S Frage zu JRadioButton AWT, Swing, JavaFX & SWT 2
H JRadioButton.requestFocus() - Problem AWT, Swing, JavaFX & SWT 2
G JRadioButton-Platzierung AWT, Swing, JavaFX & SWT 4
W JRadioButton / JCheckBox problem AWT, Swing, JavaFX & SWT 6
F Problem mit JRadioButton AWT, Swing, JavaFX & SWT 4
S JradioButton oder Toggle AWT, Swing, JavaFX & SWT 2
M JradioButton und ItemListener AWT, Swing, JavaFX & SWT 4
D JRadioButton Object AWT, Swing, JavaFX & SWT 2
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
I JRadioButton disablen geht nicht AWT, Swing, JavaFX & SWT 4
K JLabel / JRadioButton in Tabelle anzeigen AWT, Swing, JavaFX & SWT 7
T JRadioButton abfragen AWT, Swing, JavaFX & SWT 1
G JRadioButton in eine Tabelle AWT, Swing, JavaFX & SWT 4
F JRadioButton dynamisch benennen? AWT, Swing, JavaFX & SWT 7
B JRadioButton nicht auswählbar AWT, Swing, JavaFX & SWT 2
G JRadioButton beim deselektieren Wert ändern. AWT, Swing, JavaFX & SWT 2
M JRadioButton auslesen? AWT, Swing, JavaFX & SWT 8
G JRadioButton dynamisch erzeugen AWT, Swing, JavaFX & SWT 6
J LineBorder bei JRadioButton AWT, Swing, JavaFX & SWT 3
G JRadioButton deaktivieren? AWT, Swing, JavaFX & SWT 6
R jRadioButton AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben