// Fig. 11.12: DialogBoxDemo.java // Demonstrating modal and modeless Dialog boxes. import java.awt.*; import java.awt.event.*; import com.deitel.jhtp2.ch11.CloseWindowAndExit; import com.deitel.jhtp2.ch11.SelfContainedCanvas2; import com.deitel.jhtp2.ch11.SelectColorDialog; import com.deitel.jhtp2.ch11.MessageBox; public class DialogBoxDemo extends Frame implements ActionListener, ItemListener { private MessageBox information; private MenuItem about, colors, exit; private MenuBar bar; private Menu helpMenu, fileMenu; private SelfContainedCanvas2 canvas; private SelectColorDialog selectColor; public DialogBoxDemo() { super( "Dialog boxes" ); setSize( 275, 150 ); // create Help menu helpMenu = new Menu( "Help" ); about = new MenuItem( "About" ); about.addActionListener( this ); helpMenu.add( about ); // create File menu fileMenu = new Menu( "File" ); colors = new MenuItem( "Select color ..." ); colors.addActionListener( this ); fileMenu.add( colors ); fileMenu.addSeparator(); exit = new MenuItem( "Exit" ); exit.addActionListener( this ); fileMenu.add( exit ); // setup MenuBar bar = new MenuBar(); bar.add( fileMenu ); bar.add( helpMenu ); bar.setHelpMenu( helpMenu ); setMenuBar( bar ); // create About dialog information = new MessageBox( this, "Message", "Dialog box example", 200 ); // create SelectColorDialog selectColor = new SelectColorDialog( this, "Click once on desired color" ); // create SelfContainedCanvas2 canvas = new SelfContainedCanvas2(); add( canvas, BorderLayout.CENTER ); setVisible( true ); // show window } public void actionPerformed( ActionEvent e ) { if ( e.getSource() == about ) information.setVisible( true ); else if ( e.getSource() == colors ) selectColor.setVisible( true ); else if ( e.getSource() == exit ) System.exit( 0 ); } public void itemStateChanged( ItemEvent e ) { canvas.setDrawingColor( selectColor.getColor() ); } public static void main( String args[] ) { DialogBoxDemo d = new DialogBoxDemo(); d.addWindowListener( new CloseWindowAndExit() ); } }