// This example is from the book _Java AWT Reference_ by John Zukowski. // Written by John Zukowski. Copyright (c) 1997 O'Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or import java.awt.*; interface DialogHandler { void dialogDoer (Object o); } class modeTest extends Dialog { TextField user; TextField pass; modeTest (DialogHandler parent) { super ((Frame)parent, "Mode Test", true); add ("North", new Label ("Please enter username/password")); Panel left = new Panel (); left.setLayout (new BorderLayout ()); left.add ("North", new Label ("Username")); left.add ("South", new Label ("Password")); add ("West", left); Panel right = new Panel (); right.setLayout (new BorderLayout ()); user = new TextField (15); pass = new TextField (15); pass.setEchoCharacter ('*'); right.add ("North", user); right.add ("South", pass); add ("East", right); add ("South", new Button ("Okay")); resize (250, 125); } public boolean handleEvent (Event e) { if (e.id == Event.WINDOW_DESTROY) { dispose(); return true; } else if ((e.target instanceof Button) && (e.id == Event.ACTION_EVENT)) { ((DialogHandler)getParent ()).dialogDoer(e.arg); } return super.handleEvent (e); } } public class modeFrame extends Frame implements DialogHandler { modeTest d; modeFrame (String s) { super (s); resize (100, 100); d = new modeTest (this); d.show (); } public static void main (String []args) { Frame f = new modeFrame ("Frame"); } public boolean handleEvent (Event e) { if (e.id == Event.WINDOW_DESTROY) { hide(); dispose(); System.exit (0); } return super.handleEvent (e); } public void dialogDoer(Object o) { d.dispose(); add ("North", new Label (d.user.getText())); add ("South", new Label (d.pass.getText())); show (); } }