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:
importjavax.swing.*;importjavax.swing.event.ChangeEvent;importjava.awt.*;importjava.awt.event.*;publicclass GUI extendsJFrameimplementsActionListener{publicstaticvoidmain(String[] args){GUI gui1 =newGUI("Mein Mitarbeiter");
gui1.setVisible(true);}//Textfeld und Combobox erstellenprivateJTextField tfCombo;privateJComboBox combo1;//KonstruktorpublicGUI(String t){//Superklasse aufrufen mit Übergabeparameter tsuper(t);//Layout festlegen mit einer Zeile, 2 Spaltenthis.setLayout(newGridLayout(1,2));//Textfeld mit 10 Zeilenthis.tfCombo =newJTextField(10);//Array für ComboBoxString[] arrayCombo ={"Uhr","Schmuck","Gold","CD"};//Combobox hinzufügen mit dem array als Elementethis.combo1 =newJComboBox(arrayCombo);//Textfeld und Combobox hinzufügenthis.add(combo1);this.add(tfCombo);}publicvoid actionPerformed (ActionEvent e){}publicvoidstateChanged(ChangeEvent e){}}
Du musst auf der Combobox einen ItemListener registrieren:
Java:
publicclass GUI extendsJFrameimplementsItemListener{publicstaticvoidmain(String[] args){GUI gui1 =newGUI("Mein Mitarbeiter");
gui1.setVisible(true);}//Textfeld und Combobox erstellenprivateJTextField tfCombo;privateJComboBox combo1;//KonstruktorpublicGUI(String t){//Superklasse aufrufen mit Übergabeparameter tsuper(t);//Layout festlegen mit einer Zeile, 2 Spaltenthis.setLayout(newGridLayout(1,2));//Textfeld mit 10 Zeilenthis.tfCombo =newJTextField(10);//Array für ComboBoxString[] arrayCombo ={"Uhr","Schmuck","Gold","CD"};//Combobox hinzufügen mit dem array als Elementethis.combo1 =newJComboBox(arrayCombo);//Textfeld und Combobox hinzufügenthis.add(combo1);this.add(tfCombo);this.pack();// listener registrieren
combo1.addItemListener(this);}@OverridepublicvoiditemStateChanged(ItemEvent e){
tfCombo.setText(combo1.getSelectedItem().toString());}}