package javacodebook.gui.choice;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

/**
 * @author Benjamin Rusch
 *
 * 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);	
    }
}