# JCheckBox abfragen



## Alex_winf01 (12. Nov 2007)

Hallo liebe Forengemeinde:

Folgender Code:


```
keine_komplikationen = new JCheckBox("keine");
		keine_komplikationen.addItemListener(new CheckBoxListener());
```

Der Listener sieht wie folgt aus:


```
class CheckBoxListener implements ItemListener
		{
			public void itemStateChanged(ItemEvent e)
			{
				int zustand = e.getStateChange();
				String s = "";
				
				if (zustand == e.isSelected())
				{
					s = "CheckBox ausgewählt"; 
					System.out.println(s);
					komplikation_schwangerschaft_combo.setEditable(false);
					mängel_betreuung_combo.setEditable(false);
				}	
				
			}
		}
```

Der Compiler läuft ohne Fehlermeldung durch, aber es wird nichts ausgegeben   Könnt ihr mir helfen?


----------



## SlaterB (12. Nov 2007)

du hast ja einen merkwürdigen Compiler,
meiner meckert, dass es keine Operation isSelected() in ItemEvent gibt,

was macht diese denn bei dir? woher hast du die Information darüber?


----------



## Alex_winf01 (12. Nov 2007)

Ich will doch nur abfragen, ob eine CheckBox selektiert ist oder nicht. Wer kann helfen?

EDIT: Habs geschaft.


----------



## Alex_winf01 (15. Nov 2007)

Ich habe hierzu noch mal eine Frage:

Also: Sobald der Anwender bei mir eine CheckBox anklickt, werden die entsprechenden Textfelder und ComboBoxen deaktiviert.

Nun kann der Anwender wieder die CheckBox anklicken und auf "nicht selectiert" stellen. Für diesen zweiten "Klick" muss ich doch einen eigenen Listener schreiben, oder? Oder kann auf eine CheckBox immer nur ein Listener kommen?

Noch mal zur verdeutlichung: Beim Start des Programms ist die CheckBox auf "nicht selektiert" gestellt. Der Anwender klickt auf die CheckBox ("markiert" diese). Später fällt ihm ein, dass er diese Check Box nicht benötig und klickt diese noch mal an. Die CheckBox wird wieder auf "nicht selektiert" gestellt. Die entsprechenden Textfelder und ComboBoxen werden wieder zur Eingabe aktiviert.


----------



## SlaterB (15. Nov 2007)

der erste Listenere sollte beide Ereignisse mitbekommen, kannst nach zustand unterscheiden
+
es ist allgemeim möglich bei allen Swing-Listener-Empfängern aller Listener-Arten mehrere Listener zu registrieren,
die erhalten dann alle alle Ereignisse


----------



## Alex_winf01 (16. Nov 2007)

Ich habe folgenden Listener:


```
class Keine_komplikationen_CheckBoxListener implements ItemListener
		{
			public void itemStateChanged(ItemEvent arg)
  			{
    			if(arg.getSource() == keine_komplikationen)
    			{
      				komplikation_schwangerschaft_combo.setEnabled(false); 
      				mängel_betreuung_combo.setEnabled(false);
    			}
  			}
		}
```

Zuweisung Listener:


```
keine_komplikationen.addItemListener(new Keine_komplikationen_CheckBoxListener());
```

Nun wird zwar die Combo-Box deaktiviert, aber nicht wieder aktiviert. Wenn ich die Aktivierung bei erneutem klick wieder aktivieren will mittels


```
{
			public void itemStateChanged(ItemEvent arg)
  			{
    			if(arg.getSource() == keine_komplikationen)
    			{
      				komplikation_schwangerschaft_combo.setEnabled(false); 
      				mängel_betreuung_combo.setEnabled(false);
    			}
                        else
                        {
     				komplikation_schwangerschaft_combo.setEnabled(true); 
      				mängel_betreuung_combo.setEnabled(true);
                        }
  			}
		}
```

Kann mir jemand helfen, wie ich die Combo-Boxen wieder auf aktiviert schalten kann, wenn die ChekcBox "deaktiviert" wird?


----------



## lhein (16. Nov 2007)

```
public void itemStateChanged(ItemEvent arg)
  			{
                        // DAS PRÜFT NUR, OB DER EVENT AN DER CHECKBOX AUFTRAT
    			if(arg.getSource() == keine_komplikationen)
    			{
                                // JETZT SOLLTEST DU EIGENTLICH ERST MAL NACHSEHEN, OB
                                // DIE BOX NUN SELEKTIERT IST ODER NICHT, ODER...
      				komplikation_schwangerschaft_combo.setEnabled(!keine_komplikationen.isSelected()); 
      				mängel_betreuung_combo.setEnabled(!keine_komplikationen.isSelected());
    			}
                        else
                        { 
                                // KANN NICHT AUFTRETEN, ODER HAST DU DIESEN LISTENER NOCH ANDEREN
                                // KOMPONENTEN ZUGEFÜGT ?
//     				komplikation_schwangerschaft_combo.setEnabled(true); 
//      				mängel_betreuung_combo.setEnabled(true);
                        }
  			}
```

Wenn ich deinen Code richtig verstanden haben sollte.....


----------

