// Fig. 10.16: MyList.java
// Creating a List.
import java.awt.*;
import java.awt.event.*;

public class MyList extends Frame
             implements ActionListener, ItemListener {
   private List colorList;
   
   MyList( String name )
   {
     super( name );
   }

   private String colorNames[] =
      { "Black", "Blue", "Cyan", "Dark Gray", "Gray", "Green",
        "Light Gray", "Magenta", "Orange", "Pink", "Red",
        "White", "Yellow" };

   private Color colors[] =
      { Color.black, Color.blue, Color.cyan, Color.darkGray,
        Color.gray, Color.green, Color.lightGray,
        Color.magenta, Color.orange, Color.pink, Color.red,
        Color.white, Color.yellow };

   public void init()
   {
      setSize(300, 200);

      // create a list with 5 items visible
      // do not allow multiple selections
      colorList = new List( 5, false );
      colorList.addActionListener( this );
      colorList.addItemListener( this );
//      colorList.setSize(150, 100);

      // add items to the list
      for ( int i = 0; i < colorNames.length; i++ )
         colorList.add( colorNames[ i ] );

      // add list to frame
      add( colorList );
      setLayout(new FlowLayout(FlowLayout.CENTER));
   }

   public void actionPerformed( ActionEvent e )
   {
      setBackground( colors[ colorList.getSelectedIndex() ] );
      repaint();     // update frame              
   }

   public void itemStateChanged( ItemEvent e )
   {
      System.out.println( colorList.getSelectedItem() + "; index " +
                  colorList.getSelectedIndex() );
   }

  public static void main(String argv[]){
    System.out.println( "wejście do main..." );
    MyList f = new MyList("Lista");
    f.init();
    f.show();
    System.out.println( "wyjście z main..." );
  }

}
