/* B E S C H R E I B U N G
Demonstration einer ComboBox

Bei jedem Deselektieren und Selektieren in der Combobox wird ein
Ereignis ausgelöst.
Wenn man also eine Farbe in der Liste auswählt wird vorher eine
andere Farbe deselektiert.
Deswegen werden also 2 Ereignisse ausgelöst.
Das hat man unten mit
if (erg == ItemEvent.SELECTED){
berücksichtigt.
Allerdings wird dann bei der Auswahl des 1. Eintrags kein Ereignis mehr
ausgelöst.
Deswegen kann man dem 1. Eintrag die Finktion eines Labels zuweisen, d.h:
da es sich in diesem Beispiel um Farbeneinträge handelt,
wird der 1. Eintrag "Farben" genannt.
*/


package jcombobox1;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;


public class MainJComboBox1 {
    public static void main(String[] args) {
	MyFenster myf = new MyFenster();
	myf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

class MyFenster extends JFrame{
    private Container mycont;
    // Eine Zeichenfläche deklarieren
	private JPanel myp;
	private GridLayout myGL12;
    private WanzeJComboBoxListe wc;


	// Konstruktor
	public MyFenster(){
        String farben[] = {"Farben", "BLUE", "CYAN", "DARK_GRAY", "GRAY", "GREEN", "LIGHT_GRAY", "MAGENTA", "ORANGE", "PINK", "YELLOW", "BLACK"};
        JComboBox combo1 = new JComboBox();

        for ( int i = 0; i < farben.length; i++ )
          combo1.addItem( farben[i] );

        wc = new WanzeJComboBoxListe();

        combo1.addItemListener(wc);
        //combo1.addMouseListener(wc);



		// Liefert die Stelle in MyFenster, an die montiert wird.
		mycont = getContentPane();

		myp = new JPanel();

        // Erzeugt ein Layout
        myGL12 = new GridLayout(1,2);

        myp.setLayout(myGL12);

        myp.add(combo1);
        myp.add(new JLabel("  Bitte links etwas auswählen"));

        // Montiert die Zeichenfläche in das Fenster MyFenster
		mycont.add(myp);
		// Fensterüberschrift festlegen
		setTitle("Meine Zeichnung");
		// Koordinaten des linken, oberen Ecks des Fensters festlegen
		// Koordinate x = 30, Koordinate y = 60.
		setLocation(30,60);
		// Die Breite des Fensters in x-Richtung = 600
		// Die Breite des Fensters in y-Richtung = 400
		setSize(600,400);
		// Macht das Fenster sichtbar
		setVisible(true);
	}

}



class WanzeJComboBoxListe implements ItemListener {
    public void itemStateChanged( ItemEvent ie ) {
        int index = 0;

        JComboBox comboBox = (JComboBox)ie.getSource();
        int erg = ie.getStateChange();
        if (erg == ItemEvent.SELECTED){
            index = comboBox.getSelectedIndex();
            System.out.println("index= "+index);
        }
    }
}



