JCombobox und JButton verknüpfen

Sechser

Mitglied
Hallo Leute,

Ich stehe jetzt seit einiger Zeit vor einem Problem und ich habe bis jetzt nichts gefunden, was mir da helfen könnte. (Oder nichts was ich verstanden habe...) Ich hoffe hier kann mir jemand weiter helfen.

Zum Problem: Ich habe zzt. eine Combobox und einen Button. In der Combobox soll man einen Eintrag auswählen können und der Button soll dann eine Aktion je nach Eintrag ausführen.

Wisst ihr, wie ich das machen könnte? Oder gibt es da einen besseren Ansatz, als eine Combobox und einen Button?

Hier einmal der Listener der Combobox:

Java:
class AddChooser implements ActionListener{
		
		public void actionPerformed(ActionEvent e){

    		JComboBox<?> objectChooser = (JComboBox<?>)e.getSource();
                String objectName = (String)objectChooser.getSelectedItem();

           //Wollte nur wissen, ob sich überhaupt was tut
            System.out.println(objectName);
    		
		}
    }
 
Wo genau liegt das Problem?

Eigentlich brauchst du nur dem Button einen Listener hinzuzufügen. Sobald der Button gedrückt wurde schaust du welcher Wert in der ComboBox ausgewählt wurde.
Wenn du diesen Wert hast kannst du deine gewünschte Aktion starten.
Wie du zu deiner gewünschten Aktion kommst bleibt dir überlassen, du könntest es mit einem switch, ifelse probieren, mit Reflection usw.
Leider hast du keine genaueren Angaben hierzu gemacht.
 
Hallo Joose,

Das Problem ist, dass ich nicht weiß, wie ich im Button-Listener gucke, welcher Wert in der Combobox ausgewählt wurde.
Muss ich dann den Code aus dem Combobox-Listener in den Button-Listener schreiben oder wie funktioniert das?
Im Moment kann ich im Button-Listener nicht auf "objectName" zugreifen.
 
Du brauchst nicht einmal einen ComboBoxListener. Den würdest du nur brauchen wenn du mitbekommen willst das sich der Wert ändert.
Laut deiner Beschreibung willst du aber den Wert haben sobald der Button gedrückt wurde.

Somit reicht es im Button-ActionListener den Wert der ComboBox zu erfragen.
Wie wäre es denn mit einer Objektübergabe?
 
Vielleicht stelle ich mich etwas doof an aber meinst du so in etwa?

Java:
class ButtonListener implements ActionListener{
    	public void actionPerformed(ActionEvent e){
    		
    		JComboBox<?> objectChooser = (JComboBox<?>)e.getSource();
    		String objectName = (String)objectChooser.getSelectedItem();
            System.out.println(objectName);
    		
    		if(objectName == ...){
    			System.out.println("Hurra!");
    		}
    	}
    }
 
Zuletzt bearbeitet:
Nein nicht wirklich.
"e.getSource()" wird dir hier keine JComboBox liefern. Da es ja der Listener von einem Button ist! -> Exception
Du musst beim Erstellen des Listeners das ComboBox Objekt übergeben.
 

Zurück
Oben