// This example is from the book _Java in a Nutshell_ by David Flanagan. // Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or implied. import java.awt.*; public class InfoDialog extends Dialog { protected Button button; protected MultiLineLabel label; public InfoDialog(Frame parent, String title, String message) { // Create a dialog with the specified title super(parent, title, false); // Create and use a BorderLayout manager with specified margins this.setLayout(new BorderLayout(15, 15)); // Create the message component and add it to the window label = new MultiLineLabel(message, 20, 20); this.add("Center", label); // Create an Okay button in a Panel; add the Panel to the window // Use a FlowLayout to center the button and give it margins. button = new Button("Okay"); Panel p = new Panel(); p.setLayout(new FlowLayout(FlowLayout.CENTER, 15, 15)); p.add(button); this.add("South", p); // Resize the window to the preferred size of its components this.pack(); } // Pop down the window when the button is clicked. public boolean action(Event e, Object arg) { if (e.target == button) { this.hide(); this.dispose(); return true; } else return false; } // When the window gets the keyboard focus, give it to the button. // This allows keyboard shortcuts to pop down the dialog. public boolean gotFocus(Event e, Object arg) { button.requestFocus(); return true; } public static void main(String[] args) { Frame f = new Frame("InfoDialog Test"); f.resize(100, 100); f.show(); InfoDialog d = new InfoDialog(f, "Help", "The host you are trying to contact\n" + "is not currently responding.\n" + "Please try again later."); d.show(); } }