package javacodebook.gui.choice; import javax.swing.*; import java.awt.event.*; import java.awt.*; /** * Das Frame beinhaltet eine JCombobox die vier Farben zur Auswahl anbietet. * Beim auswählen einer Farbe wird diese auf die Konsole geschrieben. */ public class ComboJFrame extends JFrame { /** * JComboBox ist die Klasse der ComboBox Komponente */ private JComboBox combobox = null; private String[] comboContent = {"Rot","Gelb","Grün","Blau"}; private Container content = null; /** * Konstruktor von ComboJFrame. */ public ComboJFrame(String title) { super(title); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); content = this.getContentPane(); content.setLayout(new FlowLayout()); // Der Combobox wird im Konstruktor der gesamte Inhalt übergeben // kann aber auch später modifiziert werden combobox = new JComboBox(comboContent); // Über addItemListener kann an der JComboBox wie bei der Choice // ein Listener angemeldet werden, der bei jeder Auswahländerung // informiert wird. combobox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { Object item = e.getItem(); // damit nur beim Selektieren und nicht auch beim Deselektieren // was passiert, wird nur dieser Fall abgegriffen (gefeuert wird // bei beiden) if (ItemEvent.SELECTED== e.getStateChange()) System.out.println("Ausgewähltes Item: "+e.getItem()); } }); // Die Anzahl der sichtbaren Items in der Drop-Down-Liste kann wie folgt // gesetzt werden combobox.setMaximumRowCount(3); content.add(combobox); } }