/*
* Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
*
* 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. Please refer to the file "copyright.html"
* for further important copyright and licensing information.
*
* SUN MAKES 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. SUN SHALL NOT BE LIABLE FOR
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
*/
import java.awt.*;
public class NoneWindow extends Frame {
private boolean inAnApplet = true;
private boolean laidOut = false;
private Button b1, b2, b3;
public NoneWindow() {
super();
setLayout(null);
setFont(new Font("Helvetica", Font.PLAIN, 14));
b1 = new Button("one");
add(b1);
b2 = new Button("two");
add(b2);
b3 = new Button("three");
add(b3);
}
public void paint(Graphics g) {
if (!laidOut) {
Insets insets = insets();
//We're guaranteed that insets() will return a valid Insets
//if called from paint() -- it isn't valid when called from
//the constructor.
insets = insets(); // We could perhaps cache this in an ivar, but
// insets can change, and when they
// do, the AWT creates a whole new Insets
// object; the old one is invalid.
// BUT WILL IT REALLY CHANGE???
b1.reshape(50 + insets.left, 5 + insets.top, 50, 20);
b2.reshape(70 + insets.left, 35 + insets.top, 50, 20);
b3.reshape(130 + insets.left, 15 + insets.top, 50, 30);
laidOut = true;
}
}
public synchronized boolean handleEvent(Event e) {
if (e.id == Event.WINDOW_ICONIFY) {//DOESN'T seem to be necessary
hide();
}
if (e.id == Event.WINDOW_DESTROY) {
if (inAnApplet) {
dispose();
return false;
} else {
System.exit(0);
}
}
return super.handleEvent(e);
}
public static void main(String args[]) {
NoneWindow window = new NoneWindow();
Insets insets = window.insets();
//How do we know insets is valid here?
window.inAnApplet = false;
window.setTitle("NoneWindow Application");
window.resize(250 + insets.left + insets.right,
90 + insets.top + insets.bottom);
window.show();
}
}