# JComboBox: ActionListener/ItemListener wie nur auf bestimmte Events reagieren?



## TobiTobsen (7. Jun 2009)

Hi zusammen,
also ich hab eine JCombbox samt Actionlistener. Jetz möchte ich, das der ActioListener nur reagiert wenn jeman in der GUI die Box bedient und etwas auswählt. Nicht aber wenn zum Beispiel ein Objekt hinzugefügt wird.

Kann mir da jemand helfen?

Grüße


----------



## pinerski (7. Jun 2009)

Hallo,


```
String[] lang = { "Patronengurt", "Hausnummer", "Schmetterling", "Sphinx", "Anbetung", "Ende" };

	private JComboBox getJComboBox() {
		if (jComboBox == null) {
			jComboBox = new JComboBox();
			for (String s : lang)
				jComboBox.addItem(s);
			jComboBox.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					System.out.println(e);
					JComboBox selectedChoice = (JComboBox) e.getSource();
					if ("Ende".equals(selectedChoice.getSelectedItem()))
						System.exit(0);
				}
			});
		}
		return jComboBox;
	}
```

Schau dir mal das Beispiel an ist von Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 16.16 Auswahlmenüs, Listen und Spinner

Gruß Valentin


----------



## TobiTobsen (8. Jun 2009)

Hallo,
mein Problem ist, dass dieser Event auch ausgelöst wird, wenn zum Beispiel von anderer Stelle her ein Element der Combobox hinzugefügt wird. 

Vll versteh ich das Beispiel nicht, aber mir scheint als würde das mir da nicht helfen, oder?

Danke und viele Grüße,
Tobi


----------



## TobiTobsen (9. Jun 2009)

Hmm kann mir da keiner weiterhelfen?

Grüße


----------



## The_S (9. Jun 2009)

Warum verwendest du keinen ItemListener (ohne getestet zu haben, ob dieser nicht beim Hinzufügen eines neuen Objekts anspringt)?


----------



## Gast2 (9. Jun 2009)

Wie wärs mit einem KSKB


----------



## TobiTobsen (9. Jun 2009)

The_S hat gesagt.:


> Warum verwendest du keinen ItemListener (ohne getestet zu haben, ob dieser nicht beim Hinzufügen eines neuen Objekts anspringt)?



Also mit dem Item Listener klappts jetz ganz gut. Ich schaue nur darauf wenn sich das aktuelle Item veränder hat...
nicht optimal aber erst mal oke. 


```
combB_Preset.addItemListener(new ItemListener(){

			@Override
			public void itemStateChanged(ItemEvent e) {
				if(e.getStateChange() ==ItemEvent.DESELECTED){
					System.out.println("selectedddddd");
				}				
			}
			
});
```

Danke für eure Hilfe! 
Falls jemand noch eine andere Idee hat,würde ich mich freuen. 

Viele Grüße,
Tobi


----------



## Verjigorm (9. Jun 2009)

So ist die normale Vorgehensweise, wüsste nicht, wie man es anders machen sollte


----------

