// 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 ();
}
}
|