JRadioButton steuert Checkbox

hiker81

Mitglied
Hallo Forum,

ich bin blutiger Anfänger und habe folgendes Problem.

Ich habe 3 verschieden RadioButton zur Auswahl (Bsp. rot/grün/blau).

Beim klicken eines dieser Auswahlfelder(Bsp. rot) soll gleichzeitig eine Menge von Ceckboxen (Bsp. Farbe, Zimmer, ...) mit auf true gesetzt werden.

Wie geht man da hier am besten vor?

Java:
public Checkbox(String label, CheckboxGroup group, boolean state)

...habe ich versucht...alle Möglichkeiten ...aber vergebens

Vielen Dank für die Antworten im Voraus.

Gruß
 
S

SlaterB

Gast
poste doch ein paar der Möglichkeiten, idealerweise in einem vollständigen Miniprogramm mit einigen wenigen Checkboxex + JRadioButtons,

allgemein brauchst du offentlich einen Listener auf die JRadioButtons,
erstmal nur mit Ausgabe
System.out.println("jrb xy angewählt");
usw.
wenn das läuft, dann in diesen Listenern die Aktivierung der CheckBoxen veranlassen,
das sind doch klare Strukturen
 

hiker81

Mitglied
Leider verstehe ich es nicht ganz...

Sollte ich es in der Schleife reinschreiben...
Java:
checkBox.setSelected(true)

ich habe es versucht...es geht leider nicht!

Welchen Fehler mache ich hier?

???:L

Bitte beachten Sie nicht die Rechnung am Schluss ...das ist noch eine Baustelle!

Java:
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class test implements ItemListener {

  // JFrame
  JFrame frameApplikation;

  // Container
  Container containerApplikation;
  
  
  
  // Panel
  JPanel panelTop;
  JPanel panelMiddle;
  JPanel panelWest;

  // Checkboxgroup
  CheckboxGroup checkboxgroupRadio;

  // Checkboxen Radio
  Checkbox checkboxROT;
  Checkbox checkboxGELB;


  // Checkboxen Check
  Checkbox checkboxFarbe;
  Checkbox checkboxZimmer;
  Checkbox checkboxTisch;
  Checkbox checkboxFlasche;
  Checkbox checkboxBoden;
  Checkbox checkboxFarbe1;
  Checkbox checkboxZimmer1;
  Checkbox checkboxTisch1;
  Checkbox checkboxFlasche1;
  Checkbox checkboxBoden1;

  // Label
  JLabel labelErgebnis;

  
  
  public test() {
    // JFrame
    frameApplikation = new JFrame();
    frameApplikation.setTitle("Test");

    // Container
    containerApplikation = frameApplikation.getContentPane();

    // Panel
    panelTop = new JPanel();
    panelMiddle = new JPanel();
    panelWest = new JPanel();

    // Checkboxgroup Radio
    checkboxgroupRadio = new CheckboxGroup();

    // Checkboxen Radio
    checkboxROT = new Checkbox("Variante 1", checkboxgroupRadio, false);
    checkboxROT.addItemListener(this);
    checkboxGELB = new Checkbox("Variante 2", checkboxgroupRadio, false);
    checkboxGELB.addItemListener(this);
    
    
   
    // Checkboxen Check
    checkboxFarbe = new Checkbox("Farbe");
    
    checkboxFarbe.addItemListener(this);
    checkboxZimmer = new Checkbox("Zimmer");
    checkboxZimmer.addItemListener(this);
    checkboxTisch = new Checkbox("Tisch");
    checkboxTisch.addItemListener(this);
    checkboxFlasche = new Checkbox("Flasche");
    checkboxFlasche.addItemListener(this);
    checkboxBoden = new Checkbox("Boden");
    checkboxBoden.addItemListener(this);

    checkboxFarbe1 = new Checkbox("Farbe1");
    checkboxFarbe1.addItemListener(this);
    checkboxZimmer1 = new Checkbox("Zimmer1");
    checkboxZimmer1.addItemListener(this);
    checkboxTisch1 = new Checkbox("Tisch1");
    checkboxTisch1.addItemListener(this);
    checkboxFlasche1 = new Checkbox("Flasche1");
    checkboxFlasche1.addItemListener(this);
    checkboxBoden1 = new Checkbox("Boden1");
    checkboxBoden1.addItemListener(this);
   
    // Label
    labelErgebnis = new JLabel("Stück: ");
    Font font = new Font("Anzahl", Font.BOLD , 20);
    labelErgebnis.setFont(font);

    // panel Top
    panelTop.setLayout(new GridLayout(1, 3));
    panelTop.add(checkboxROT);
    panelTop.add(checkboxGELB);
   
    // panel Middle
    panelMiddle.setLayout(new GridLayout(5, 3));
    panelMiddle.add(checkboxFarbe);
    panelMiddle.add(checkboxZimmer);
    panelMiddle.add(checkboxTisch);
    panelMiddle.add(checkboxFlasche);
    panelMiddle.add(checkboxBoden);
    
    
    panelWest.setLayout(new GridLayout(5, 3));
    panelWest.add(checkboxFarbe1);
    panelWest.add(checkboxZimmer1);
    panelWest.add(checkboxTisch1);
    panelWest.add(checkboxFlasche1);
    panelWest.add(checkboxBoden1);

    // container
    containerApplikation.add(panelTop, BorderLayout.NORTH);
    containerApplikation.add(panelWest, BorderLayout.WEST);
    containerApplikation.add(panelMiddle, BorderLayout.CENTER);
    containerApplikation.add(labelErgebnis, BorderLayout.SOUTH);

    frameApplikation.pack();
    frameApplikation.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frameApplikation.setVisible(true);
  }

  public static void main(String[] args) {
    new test();
  }

  public void itemStateChanged(ItemEvent arg0) {

    // SUMME
    double SUMME = 0;
    double Mehrzahl =0;

    
  

    // Radio
    Checkbox selected = checkboxgroupRadio.getSelectedCheckbox();
    if (selected != null) {
      if (selected.getLabel().equals("ROT")) 
      {
        
    	  SUMME = 1;
    	  Mehrzahl =1; 
       
      }
      if (selected.getLabel().equals("GELB")) 
      {
    	  SUMME = 1;
      }
          
    
      // Checkbox
      if (checkboxROT.getState() == true) 
      {
        Mehrzahl++;
      }
      
      
      if (checkboxGELB.getState() == true) 
      {
        Mehrzahl++;
      }
   
      
      // Berechnung
      SUMME = SUMME + 1;
      labelErgebnis
          .setText("Anzahl: " + Double.toString(SUMME) + " Punkte");
    } 
  	else
  	{
      labelErgebnis.setText("Bitte Modul angeben!");
  	}
  }}
 
S

SlaterB

Gast
> in der Schleife reinschreiben

welche Schleife?

> checkBox.setSelected(true)

es gibt keine Variable namens checkBox, oder?

-----

2-3 statt 10 Checkboxen und etwas weniger Layout hätten es auch getan, aber besser als nix ;)

in der itemStateChanged-Methode also mit if/else die Quelle herausfinden
(if event.getSource() == xy) hilft dabei,
und dann setSelected(true/ false) irgendwo aufrufen, richtig,

aufpassen dass es nicht nicht ne Endlosschleife wird,
Item A aktiviert B
-> neues Event für B
-> ändert C
-> neues Event fürC
-> ändert A
usw.
 

hiker81

Mitglied
Hallo SlaterB, hoffentlich verstimme ich Sie jetzt nicht.

Könnten Sie sich nochmalig mit dem Problem befassen.
Ich habe den Code etwas gekürzt.
Nebenbei habe ich versucht Ihre Idee umzusetzen. Leider ohne Erfolg.
Könnten Sie mir ein kleinen Hinweis noch geben.(Quelle für Literatur/Homepage)

Vielen Dank!


Java:
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class test implements ItemListener {

  // JFrame
  JFrame frameApplikation;

  // Container
  Container containerApplikation;
  
  
  
  // Panel
  JPanel panelTop;
  JPanel panelMiddle;
  JPanel panelWest;

  // Checkboxgroup
  CheckboxGroup checkboxgroupRadio;

  // Checkboxen Radio
  Checkbox checkboxROT;
  Checkbox checkboxGELB;


  // Checkboxen Check
  Checkbox checkboxFarbe;
  Checkbox checkboxZimmer;

  Checkbox checkboxFarbe1;
  Checkbox checkboxZimmer1;


  // Label
  JLabel labelErgebnis;

  
  
  public test() {
    // JFrame
    frameApplikation = new JFrame();
    frameApplikation.setTitle("Test");

    // Container
    containerApplikation = frameApplikation.getContentPane();

    // Panel
    panelTop = new JPanel();
    panelMiddle = new JPanel();
    panelWest = new JPanel();

    // Checkboxgroup Radio
    checkboxgroupRadio = new CheckboxGroup();

    // Checkboxen Radio
    checkboxROT = new Checkbox("Variante 1", checkboxgroupRadio, false);
    checkboxROT.addItemListener(this);
    checkboxGELB = new Checkbox("Variante 2", checkboxgroupRadio, false);
    checkboxGELB.addItemListener(this);
    
    
   
    // Checkboxen Check
    checkboxFarbe = new Checkbox("Farbe");
    checkboxFarbe.addItemListener(this);
    checkboxZimmer = new Checkbox("Zimmer");
    checkboxZimmer.addItemListener(this);
    
    checkboxFarbe1 = new Checkbox("Farbe1");
    checkboxFarbe1.addItemListener(this);
    checkboxZimmer1 = new Checkbox("Zimmer1");
   
   
    // Label
    labelErgebnis = new JLabel("Stück: ");
    Font font = new Font("Anzahl", Font.BOLD , 20);
    labelErgebnis.setFont(font);

    // panel Top
    panelTop.setLayout(new GridLayout(1, 3));
    panelTop.add(checkboxROT);
    panelTop.add(checkboxGELB);
   
    // panel Middle
    panelMiddle.setLayout(new GridLayout(5, 3));
    panelMiddle.add(checkboxFarbe);
    panelMiddle.add(checkboxZimmer);
    
    
    panelWest.setLayout(new GridLayout(5, 3));
    panelWest.add(checkboxFarbe1);
    panelWest.add(checkboxZimmer1);
    
    

    // container
    containerApplikation.add(panelTop, BorderLayout.NORTH);
    containerApplikation.add(panelWest, BorderLayout.WEST);
    containerApplikation.add(panelMiddle, BorderLayout.CENTER);
    containerApplikation.add(labelErgebnis, BorderLayout.SOUTH);

    frameApplikation.pack();
    frameApplikation.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frameApplikation.setVisible(true);
  }

  
  
  
  public static void main(String[] args) {
    new test();
  }

  public void itemStateChanged(ItemEvent arg0) {

    // SUMME
    double SUMME = 0;
    double Mehrzahl =0;

    
  

    // Radio
    Checkbox selected = checkboxgroupRadio.getSelectedCheckbox();
    

    
    if (selected != null) {
      if (selected.getLabel().equals("ROT")) 
      {
    	 
    	  SUMME = 1;
    	  Mehrzahl =1; 
        
      }
    
      if (selected.getLabel().equals("GELB")) 
      {
    	  SUMME = 1;
      }
          
    
      // Checkbox
      if (checkboxROT.getState() == true) 
      {
        Mehrzahl++;
      }
      
      
      if (checkboxGELB.getState() == true) 
      {
        Mehrzahl++;
      }
   
      
      // Berechnung
      SUMME = SUMME + 1;
      labelErgebnis
          .setText("Anzahl: " + Double.toString(SUMME) + " Punkte");
    } 
  	else
  	{
      labelErgebnis.setText("Bitte Modul angeben!");
  	}
  }}
 
S

SlaterB

Gast
nirgendwo taucht setSelected() auf, obwohl genau das der Befehl zum selektieren ist,
da kann ich kaum mehr Tipps geben, als diesen Befehl auch zu verwenden ;)

edit:
ok, wenn du alte AWT-Checkbox in einem Swing-JFrame nimmst, dann heißt es setState() und da gibts auch CheckboxGroup, in denen man das selektierte Element setzen kann,
falls du einfach nur die entsprechenden Befehle nicht gefunden hast, dann sag das doch,

unten noch ein Beispiel,
besser aber auf Swing-Komponenten umsteigen, JCheckBox + JRadioButton,
How to Use Buttons, Check Boxes, and Radio Buttons (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Java:
public class Test {

	public static void main(String[] args) {
		new test();
	}

}

class test implements ItemListener {

	CheckboxGroup checkboxgroupRadio;
	Checkbox checkboxROT;
	Checkbox checkboxGELB;
	Checkbox checkboxFarbe;
	Checkbox checkboxZimmer;
	JLabel labelErgebnis;

	public test() {

		checkboxgroupRadio = new CheckboxGroup();
		checkboxROT = new Checkbox("Variante 1", false, checkboxgroupRadio);
		checkboxROT.addItemListener(this);
		checkboxGELB = new Checkbox("Variante 2", false, checkboxgroupRadio);
		checkboxGELB.addItemListener(this);

		checkboxFarbe = new Checkbox("Farbe");
		checkboxFarbe.addItemListener(this);
		checkboxZimmer = new Checkbox("Zimmer");
		checkboxZimmer.addItemListener(this);

		labelErgebnis = new JLabel("?: ");

		JPanel p = new JPanel();
		p.add(checkboxROT);
		p.add(checkboxGELB);
		p.add(checkboxFarbe);
		p.add(checkboxZimmer);
		p.add(labelErgebnis);

		JFrame f = new JFrame();
		f.add(p);
		f.setTitle("Test");
		f.setSize(800,300);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
	}

	public void itemStateChanged(ItemEvent arg0) {
		Checkbox selected = checkboxgroupRadio.getSelectedCheckbox();
		labelErgebnis.setText("selected: "
				+ (selected == null ? "null" : selected.getName()));

		if (selected != null) {
			checkboxZimmer.setState(true);
		}
		
		if (arg0.getSource() == checkboxFarbe) {
			checkboxgroupRadio.setSelectedCheckbox(checkboxGELB);
		}
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JRadioButton verknüpfen Java Basics - Anfänger-Themen 1
M Verbesserung für JRadioButton Java Basics - Anfänger-Themen 10
D JRadiobutton reagiert nicht wie gewünscht Java Basics - Anfänger-Themen 3
J 19% Aufschlag per JRadioButton Java Basics - Anfänger-Themen 2
J Probleme beim JRadioButton Java Basics - Anfänger-Themen 2
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2
M JRadioButton Java Basics - Anfänger-Themen 4
J JRadioButton in JTable setzen Java Basics - Anfänger-Themen 4
M GUI - Toggle JRadioButton? Java Basics - Anfänger-Themen 2
A JRadioButton Java Basics - Anfänger-Themen 6
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
M JRadioButton keine Instanz von ButtonModel Java Basics - Anfänger-Themen 10
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
S JRadioButton - Wert setzen aus Datenbank Java Basics - Anfänger-Themen 4
A JRadioButton aus Code heraus selectieren. Java Basics - Anfänger-Themen 4
I Unerklärliche Null-Pointer-Exception bei JRadioButton Array Java Basics - Anfänger-Themen 2
O JRadioButton's - Einen aktivieren/ Rest deaktivieren Java Basics - Anfänger-Themen 5
G JRadioButton Objekte zugehörig zu welcher buttongroup Java Basics - Anfänger-Themen 3
H Die Schriftfarbe des JRadioButton festlegen Java Basics - Anfänger-Themen 2
G Zeichen in JRadioButton ersetzen Java Basics - Anfänger-Themen 3
G Status von JRadioButton Java Basics - Anfänger-Themen 5
G JRadioButton Java Basics - Anfänger-Themen 4
T alle JRadioButton deaktivieren Java Basics - Anfänger-Themen 8
DeeDee0815 JRadioButton, actionPerformed und Textfelder Java Basics - Anfänger-Themen 2
P JRadioButton der ButtonGroup nicht sichtbar ? Java Basics - Anfänger-Themen 2
G JSpinner als JRadioButton? Java Basics - Anfänger-Themen 3
X JRadioButton isEnabled() ? Java Basics - Anfänger-Themen 2
J get Methode(boolean) JRadiobutton? Java Basics - Anfänger-Themen 2
M Checkbox abfragen und Radiobutton Group zurücksetzen Java Basics - Anfänger-Themen 1
O checkbox Java Basics - Anfänger-Themen 5
W Befüllung einer Tabelle mit Checkbox, Trennung GUI und Model Java Basics - Anfänger-Themen 5
J ItemStateChanged() bei einer Checkbox Java Basics - Anfänger-Themen 2
H Text durch Checkbox erscheinen lassen Java Basics - Anfänger-Themen 2
P Probleme mit checkBox.isSelected Java Basics - Anfänger-Themen 4
R Speichern von Checkbox einträgen Java Basics - Anfänger-Themen 12
C ActionEvent mit CheckBox (true und false) Java Basics - Anfänger-Themen 6
M Checkbox Java Basics - Anfänger-Themen 11
D Erste Schritte JList + Checkbox Java Basics - Anfänger-Themen 5
D Variablen Checkbox Änderung in 2. Klasse aktuallisieren Java Basics - Anfänger-Themen 3
J checkbox status abfragen und drucken Java Basics - Anfänger-Themen 13
R JTabel + HashMap + Checkbox Java Basics - Anfänger-Themen 4
Os-Programming Checkbox immer wieder überprüfen Java Basics - Anfänger-Themen 13
S NullPointerException beim Checkbox-Label-Array mit nextLine() Java Basics - Anfänger-Themen 6
J Checkbox oder RadioButtons Java Basics - Anfänger-Themen 11
H Checkbox mit Werten hinterlegen Java Basics - Anfänger-Themen 4
0 TicTacToe, Problem mit den Checkbox-Aktionen Java Basics - Anfänger-Themen 6
jnoob Checkbox in Dialog Dynamisch erstellen Java Basics - Anfänger-Themen 2
K CheckBox aus anderer Klasse Java Basics - Anfänger-Themen 3
D jeditorpane checkbox abfragen? Java Basics - Anfänger-Themen 7
C Checkbox will nicht? Java Basics - Anfänger-Themen 7
T JTable mit Checkbox Java Basics - Anfänger-Themen 9
K Wieso schaltet meine CheckBox von selbst um ? Java Basics - Anfänger-Themen 31
T Checkbox in jtable: boolean wert direkt setzen - wie? Java Basics - Anfänger-Themen 1
1 Checkbox nach klick ausblenden Java Basics - Anfänger-Themen 4
G Checkbox Java Basics - Anfänger-Themen 11
F Muss ich TableCellEditor implementieren für checkbox abfrage Java Basics - Anfänger-Themen 3
G Checkbox Status Bit in einem Byte sichern Java Basics - Anfänger-Themen 5
B checkbox . ausgewählt? Java Basics - Anfänger-Themen 5
J Kleines Problem mit Checkbox Java Basics - Anfänger-Themen 5
B Checkbox abfragen Java Basics - Anfänger-Themen 6
D Checkbox in JTable(Spalte) einfügen. Java Basics - Anfänger-Themen 2
C JTable - Checkbox, Icon, was auch immer. Java Basics - Anfänger-Themen 8
C JTable: Farbe und Checkbox Java Basics - Anfänger-Themen 3
M Checkbox Array Java Basics - Anfänger-Themen 11
J Wie ordne ich Swing-Elementen (checkbox, button, etc.)? Java Basics - Anfänger-Themen 2
M Checkbox in 2 Columns Java Basics - Anfänger-Themen 8
G Problem mit Checkbox Java Basics - Anfänger-Themen 2
G Frage zur Checkbox Java Basics - Anfänger-Themen 8
C JSP, HTML checkbox in Java Abfrage Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben