RadioButton aktivieren/deaktivieren; Zustand abfragen und wechseln

Voidl

Neues Mitglied
Hallo Java Community,

ich versuche gerade ein Schulprojekt mit einem jFrame graphisch darzustellen und stoße dabei auf ein Problem.
Ich wollte mit jRadioButtons Lämpchen darstellen und mit jButtons die dazugehörigen Schalter.
Nun wollte ich sozusagen Stromstoßrelaises programmieren. D.h. wenn ein Lämpchen aktiviert ist (bzw. der RadioButton), dann soll es deaktiviert werden und andersrum. Also wird mit einem Klick auf einen jButton der Zustand eines jRadioButtons geändert.

So soll das ganze ausschauen:
sieben_lichter.png

Ich wollte dazu folgenden Code verwenden:

Java:
public void jButton1_ActionPerformed(ActionEvent evt) {
 if (jRadioButton1.isSelected(true)) {
  jRadioButton1.setSelected(false);
 } else {
 jRadioButton1.setSelected(true);
}
Dazu gibt mir JavaEditor aber folgende Fehlermeldung aus:
Code:
sieben_lichter.java:170:22: isSelected() in javax.swing.AbstractButton cannot be applied to (boolean)

Wie kann ich das Problem lösen?
Ihr könnt mir auch gern was anderes vorschlagen, so dass halt nicht der Zustand von RadioButtons geändert werde soll, sondern z.B. die Hintergrundfarbe von irgendetwas, oder der Inhalt eines Feldes. (Mir ist aber ein graphische Lösung lieber)

Danke schonmal
 
Zuletzt bearbeitet:

Voidl

Neues Mitglied
Ich bin gerade draufgekommen:
reicht es, wenn ich die if-Anweisung einfach ganz weglasse und schreibe:
[JAVa]public void jButton1_ActionPerformed(ActionEvent evt) {
jRadioButton1.doClick();
}[/code]
?
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
normalerweise sollte das so in der Art aussehen :

Java:
@Override
public void actionPerformed(ActionEvent e){
	if(btn.isSelected()) {
		System.out.println("Ein");
	}
	else{
		System.out.println("Out");
	}
}

Du kannst auch alle Events mit einem Listener behandeln, und dann einfach nur die Quelle und den Status abfragen :

Java:
@Override
public void actionPerformed(ActionEvent e){
	JRadioButton btn = (JRadioButton) e.getSource();
		
	if(btn.isSelected()) {
		System.out.println("Ein");
	}
	else{
		System.out.println("Out");
	}
}

auch hier kannst du dann noch abfragen von welchem Button das Event abgefeuert worden ist,

Java:
@Override
public void actionPerformed(ActionEvent e){
	JRadioButton btn = (JRadioButton) e.getSource();
		
	if(btn.isSelected()) {
		if(btn == btns[0]) {
			System.out.println("Eins");
		}
		if(btn == btns[1]) {
			System.out.println("Zwei");
		}
	}
	else{
		System.out.println("Out");
	}
}

wenn du nun mit JButtons den State des RadioButtons steuern willst kannst du das folgendermaßen machen, erstmal würde ich vielleicht einen JToogleButton verwenden und dann sowas hier schreiben :

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JToggleButton;


@SuppressWarnings("serial")
public class BtnTest extends JFrame implements ActionListener{

	JToggleButton toggleButton;
	String defaultState = "Aus";
	String onState		= "Ein";
	JRadioButton light;
	
	public BtnTest(){
		setSize(500,500);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
		JPanel panel = new JPanel();
		toggleButton = new JToggleButton(defaultState);
		toggleButton.addActionListener(this);
		
		light = new JRadioButton();
		
		panel.add(toggleButton);
		panel.add(light);
		setContentPane(panel);
	}

	@Override
	public void actionPerformed(ActionEvent e){
		if(toggleButton.isSelected()) {
			toggleButton.setText(onState);
			light.setSelected(true);
		}
		else{
			toggleButton.setText(defaultState);
			light.setSelected(false);
		}
	}

	public static void main(String[] args){
		new BtnTest().setVisible(true);
	}
}

zusätzlich würde ich ggf. den Background erst Geld zeichnen lassen wenn die "Lampe" eingeschaltet ist ;)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JavaFX RadioButton.setText() AWT, Swing, JavaFX & SWT 11
A Zufallsgenerator starten bei Klick auf Radiobutton AWT, Swing, JavaFX & SWT 3
J RadioButton-Gruppe in Kombination mit einem Button AWT, Swing, JavaFX & SWT 6
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
R JMenuItems mit Radiobutton/Haken AWT, Swing, JavaFX & SWT 2
U Radiobutton als nicht angeklickt makieren AWT, Swing, JavaFX & SWT 2
N JTable RadioButton statt Checkbox AWT, Swing, JavaFX & SWT 4
G Radiobutton checked ? AWT, Swing, JavaFX & SWT 4
G RadioButton AWT, Swing, JavaFX & SWT 1
N SWT: Frage zu Radiobutton setSelection() AWT, Swing, JavaFX & SWT 2
D RadioButton abstand entfernen AWT, Swing, JavaFX & SWT 2
C RadioButton nicht änderbar stellen, ohne das Sie grau wird AWT, Swing, JavaFX & SWT 9
D RadioButton in einer Tabelle einfügen AWT, Swing, JavaFX & SWT 3
A zurücksetzen Radiobutton AWT, Swing, JavaFX & SWT 3
M Über RadioButton öffnen? AWT, Swing, JavaFX & SWT 9
C Radiobutton-Bezeichnung mit Eingabefeld AWT, Swing, JavaFX & SWT 2
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
K JavaFX DatePicker - Tage aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
OnDemand Button aktivieren AWT, Swing, JavaFX & SWT 3
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
J Swing JButton durch Eingabe von Zahlen in JTextFields aktivieren AWT, Swing, JavaFX & SWT 3
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
L Swing Fenster aktivieren AWT, Swing, JavaFX & SWT 2
J JButtons in aktivieren und deaktivieren AWT, Swing, JavaFX & SWT 3
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
Y JRadioButton soll JTextBox aktivieren UND deaktivieren AWT, Swing, JavaFX & SWT 3
S Button aktivieren (Applet) AWT, Swing, JavaFX & SWT 2
B SWT Buttons aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 3
X Eingabe in Textfeld soll Button aktivieren... AWT, Swing, JavaFX & SWT 12
D SWT JFace TableViewer nächster CellEditor nach Enter aktivieren AWT, Swing, JavaFX & SWT 5
André Uhres Swing Alle Komponenten eines JPanel aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 4
G JFrame aktivieren AWT, Swing, JavaFX & SWT 6
G JInternal Frame "aktivieren" AWT, Swing, JavaFX & SWT 2
S Bei Select in JTable Button aktivieren AWT, Swing, JavaFX & SWT 6
N Alle Komponenten eines JPanel aktivieren/deaktivieren? AWT, Swing, JavaFX & SWT 5
X Action aktivieren AWT, Swing, JavaFX & SWT 2
M JToggleButton immer nur einen aktivieren AWT, Swing, JavaFX & SWT 2
N Eine Komponente aktivieren AWT, Swing, JavaFX & SWT 2
G internes Fenster aktivieren AWT, Swing, JavaFX & SWT 2
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
missy72 JavaFX CellFactory deaktivieren, oder löschen AWT, Swing, JavaFX & SWT 2
L Swing Fehlerton deaktivieren? AWT, Swing, JavaFX & SWT 4
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
L Javafx Datepicker Zukunft deaktivieren AWT, Swing, JavaFX & SWT 3
A Touch-Display deaktivieren (Zeitabhängig) AWT, Swing, JavaFX & SWT 3
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
G JButton deaktivieren greift nicht AWT, Swing, JavaFX & SWT 14
T Listener in anderen Panel deaktivieren AWT, Swing, JavaFX & SWT 3
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
M SWT - Fenster "Deaktivieren" AWT, Swing, JavaFX & SWT 2
E Buttons während einer Berechnung deaktivieren AWT, Swing, JavaFX & SWT 6
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
T JmenuItems in JPopupMenu kontextabhängig deaktivieren AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
T JTable: editieren bei Doppelklick deaktivieren, aber... AWT, Swing, JavaFX & SWT 2
algorismi Knoten im JTree deaktivieren AWT, Swing, JavaFX & SWT 4
L Fenster inaktiv setzen / deaktivieren (unable to close window) AWT, Swing, JavaFX & SWT 16
G Swing Fortschrittsbalken im Fenster: Menü deaktivieren / abfangen? AWT, Swing, JavaFX & SWT 27
multiholle [JProgressBar] Raster deaktivieren AWT, Swing, JavaFX & SWT 14
G Wiederholten Tastenanschlag deaktivieren AWT, Swing, JavaFX & SWT 7
M ALT shortcut für JMenuBar deaktivieren AWT, Swing, JavaFX & SWT 3
I JList - Einträge deaktivieren AWT, Swing, JavaFX & SWT 2
V Menüeinträge im DropDown-Menü deaktivieren AWT, Swing, JavaFX & SWT 3
A JList deaktivieren AWT, Swing, JavaFX & SWT 2
Tom299 JTable - Spalten verschieben deaktivieren? AWT, Swing, JavaFX & SWT 3
D JFrame schließen-Button deaktivieren AWT, Swing, JavaFX & SWT 4
G button deaktivieren AWT, Swing, JavaFX & SWT 3
S TAB Taste ändern in Enter und deaktivieren im jTextField AWT, Swing, JavaFX & SWT 5
R Swing - JTable Multiselect deaktivieren AWT, Swing, JavaFX & SWT 2
C Combo-Box deaktivieren AWT, Swing, JavaFX & SWT 4
G JDialog schliessen deaktivieren AWT, Swing, JavaFX & SWT 7
G JRadioButton deaktivieren? AWT, Swing, JavaFX & SWT 6
S TableCellRenderer deaktivieren AWT, Swing, JavaFX & SWT 13
M JTextPane - Zeilenumbruch verhindern stoppen deaktivieren :) AWT, Swing, JavaFX & SWT 5
U komplette JMenuBar deaktivieren? AWT, Swing, JavaFX & SWT 4
H Komponenten deaktivieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben