// Fig. 11.12: SelectColorDialog.java // Modeless dialog that allows user to choose drawing color. package com.deitel.jhtp2.ch11; import java.awt.*; import java.awt.event.*; import com.deitel.jhtp2.ch11.CloseWindow; public class SelectColorDialog extends Dialog implements ItemListener { private List colorList; 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 }; private Color currentColor; public SelectColorDialog( Frame parent, String title ) { super( parent, title, false ); setSize( 275, 150 ); addWindowListener( new CloseWindow() ); // create a list with 5 items visible // do not allow multiple selections colorList = new List( 5, false ); colorList.addItemListener( this ); colorList.addItemListener( ( ItemListener ) parent ); // add items to the list for ( int i = 0; i < colorNames.length; i++ ) colorList.add( colorNames[ i ] ); // add list to applet add( colorList, BorderLayout.CENTER ); currentColor = colors[ 0 ]; // black } public void itemStateChanged( ItemEvent e ) { currentColor = colors[ colorList.getSelectedIndex() ]; } public Color getColor() { return currentColor; } }