Ausgewähltes Element einer JCombobox in JTextField

cboy

Mitglied
Hallo zusammen,
bin gerade dabei, mit GUI´s vertraut zu werden. Ich hätte da jedoch eine Frage zu der JComboBox: Und zwar, habe ich eine JComboBox und ein JTextfield in mein Programm eingebunden (nur 1 Klasse). Dann habe ich mir ein Array angelegt, dass ich benutzt habe, um der Combobox Werte zu geben. Meine Frage: Wie schaffe ich es, dass, wenn ich auf ein Element der Combobox klicke, z. B. auf Gold, dass dann in meinem Textfeld auch "Gold" erscheint? Hier einmal den Code, den ich bisher gemacht hab, habe auch alles Kommentiert, damit ihr einen besseren Überblick habt 🙂 Bin für jede Hilfe dankbar.

Java:
import javax.swing.*;
import javax.swing.event.ChangeEvent;

import java.awt.*;
import java.awt.event.*;

public class GUI extends JFrame implements ActionListener{

	public static void main(String[] args) {
		GUI gui1 = new GUI("Mein Mitarbeiter");
		gui1.setVisible(true);

	}
	//Textfeld und Combobox erstellen
	private JTextField tfCombo;
	private JComboBox combo1;
	
	
	
	//Konstruktor
	public GUI(String t){
		
		//Superklasse aufrufen mit Übergabeparameter t
		super(t);
		
		//Layout festlegen mit einer Zeile, 2 Spalten
		this.setLayout(new GridLayout (1,2));
		
		//Textfeld mit 10 Zeilen
		this.tfCombo = new JTextField(10);
		
		//Array für ComboBox
		String[] arrayCombo = {"Uhr", "Schmuck","Gold","CD"};
		
		//Combobox hinzufügen mit dem array als Elemente
		this.combo1 = new JComboBox(arrayCombo);
		
		//Textfeld und Combobox hinzufügen
		this.add(combo1);
		this.add(tfCombo);
		
	}
	
	public void actionPerformed (ActionEvent e){
		
	}
	
	public void stateChanged(ChangeEvent e){
	
		
	}

}
 
Du musst auf der Combobox einen ItemListener registrieren:
Java:
public class GUI extends JFrame implements ItemListener {
 
    public static void main(String[] args) {
        GUI gui1 = new GUI("Mein Mitarbeiter");
        gui1.setVisible(true);
 
    }
    //Textfeld und Combobox erstellen
    private JTextField tfCombo;
    private JComboBox combo1;
    
    
    
    //Konstruktor
    public GUI(String t){
        
        //Superklasse aufrufen mit Übergabeparameter t
        super(t);
        
        //Layout festlegen mit einer Zeile, 2 Spalten
        this.setLayout(new GridLayout (1,2));
        
        //Textfeld mit 10 Zeilen
        this.tfCombo = new JTextField(10);
        
        //Array für ComboBox
        String[] arrayCombo = {"Uhr", "Schmuck","Gold","CD"};
        
        //Combobox hinzufügen mit dem array als Elemente
        this.combo1 = new JComboBox(arrayCombo);
        
        //Textfeld und Combobox hinzufügen
        this.add(combo1);
        this.add(tfCombo);
        this.pack();
        
        // listener registrieren
        combo1.addItemListener(this);
    }



	@Override
	public void itemStateChanged(ItemEvent e) {
		tfCombo.setText(combo1.getSelectedItem().toString());
	}
}
 
Java:
tfCombo.setText((String) combo1.getSelectedItem());

z.B.

edit: Zu spät. Die Seite nicht neu geladen, sry.
 
Zuletzt bearbeitet:

Zurück
Oben