/* * Gary Cornell and Cay S. Horstmann, Core Java (Book/CD-ROM) * Published By SunSoft Press/Prentice-Hall * Copyright (C) 1996 Sun Microsystems Inc. * All Rights Reserved. ISBN 0-13-565755-5 * * Permission to use, copy, modify, and distribute this * software and its documentation for NON-COMMERCIAL purposes * and without fee is hereby granted provided that this * copyright notice appears in all copies. * * THE AUTHORS AND PUBLISHER MAKE NO REPRESENTATIONS OR * WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHORS * AND PUBLISHER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED * BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING * THIS SOFTWARE OR ITS DERIVATIVES. */ /** * @version 1.00 07 Feb 1996 * @author Cay Horstmann */ import java.awt.*; public class DialogTest extends Frame { public DialogTest() { setTitle("DialogTest"); Panel p = new Panel(); p.setLayout(new FlowLayout(FlowLayout.LEFT)); p.add(new Button("About")); p.add(new Button("Close")); add("North", p); } public boolean action(Event evt, Object arg) { if(arg.equals("About")) { AboutDialog ab = new AboutDialog(this); ab.show(); } else if(arg.equals("Close")) { System.exit(0); } else return super.action(evt, arg); return true; } public boolean handleEvent(Event evt) { if (evt.id == Event.WINDOW_DESTROY && evt.target == this) System.exit(0); return super.handleEvent(evt); } public static void main(String args[]) { Frame f = new DialogTest(); f.resize(300, 200); f.show(); } } class AboutDialog extends Dialog { public AboutDialog(Frame parent) { super(parent, "About DialogTest", true); Panel p1 = new Panel(); p1.add(new Label("CoreJava")); p1.add(new Label("By Gary Cornell and Cay Horstmann")); add("Center", p1); Panel p2 = new Panel(); p2.add(new Button("Ok")); add("South", p2); resize(220, 150); } public boolean action(Event evt, Object arg) { if(arg.equals("Ok")) { dispose(); return true; } return false; } public boolean handleEvent(Event evt) { if (evt.id == Event.WINDOW_DESTROY && evt.target == this) System.exit(0); return super.handleEvent(evt); } }