JComboBox und ItemListener/ItemEvent Problem

memo1990

Aktives Mitglied
Guten Abend zusammen,

und zwar habe ich das Problem, dass bei mir die Werte von JComboBox immer zweimal ausgeben werden, obwohl ich den Zustand (SELECTED/DESELECTED) abfange.

Hier den Code dazu:

Main:
Java:
package standard;

public class Main {
	public static void main(String[] args) {
		GUIMain fenster = new GUIMain("Auto");
		fenster.setSize(400, 400);
		fenster.setVisible(true);
	}
}

GUIMain:
Java:
package standard;

import java.awt.event.*;
import javax.swing.*;

public class GUIMain extends JFrame implements ActionListener, ItemListener {
	String[] AutomarkeItems = {"BMW", "Audi", "Volkswagen", "Mercedes-Benz", "Fiat"};
	JComboBox<String> cbAutomarke;
	
	@Override
	public void actionPerformed(ActionEvent e) {
		
	}
	
	@Override
	public void itemStateChanged(ItemEvent e) {
		if (e.getStateChange() == ItemEvent.SELECTED) {
			System.out.println(e.getItem());
		}
	}
	
	GUIMain(String titel) {
		super(titel);
		
		setLayout(null);
		
		JLabel lAutomarke = new JLabel("Automarke:");
		cbAutomarke = new JComboBox<String>(AutomarkeItems);
		cbAutomarke.addItemListener(this);
		
		lAutomarke.setBounds(5, 10, 70, 10);
		cbAutomarke.setBounds(80, 5, 100, 20);
		cbAutomarke.addItemListener(this);
		
		add(lAutomarke);
		add(cbAutomarke);
		
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
}
 
Hallo!
Das Problem ist ganz simpel. Wenn du noch mal über deinen Code schaust, dann wirst du es vielleicht entdecken. Auch hätte ein einfacher Breakpoint dir geholfen. Einfach mal Debuggen und du hättest gesehen, warum es zweimal ausgegeben wird. Das Problem ist einfach, dass du zweimal einen Listener hinzufügst. Also lauscht er auch zweimal! 🙂

edit: Nicht aktualisiert, sry!
 
😳 Kein Wunder. Das ist mir jetzt peinlich. 😀 Manchmal braucht man einfach doch ein Vier-Augen-Prinzip. Trotzdem danke. :toll:
 

Neue Themen


Zurück
Oben