aboutsummaryrefslogtreecommitdiff
path: root/libjava/javax/swing/JFrame.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2004-04-21 05:48:51 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2004-04-21 05:48:51 +0000
commit1c3d6bb26fdfe129a7b087a1843ed4d0b051013b (patch)
tree39e7e83260ed41189cf968ced901bead6477f7fb /libjava/javax/swing/JFrame.java
parent387fa012f2b0c6e44cf834400a59f73ede9bc2db (diff)
downloadgcc-1c3d6bb26fdfe129a7b087a1843ed4d0b051013b.zip
gcc-1c3d6bb26fdfe129a7b087a1843ed4d0b051013b.tar.gz
gcc-1c3d6bb26fdfe129a7b087a1843ed4d0b051013b.tar.bz2
JFrame.java: Implement WindowConstants.
2004-04-21 Mark Wielaard <mark@klomp.org> * javax/awt/JFrame.java: Implement WindowConstants. Remove final static fields defined in interface. * javax/awt/JDialog.java: Likewise. (JDialog): Make constructors public. (getDefaultCloseOperation): Make public. (processWindowEvent): Call System.exit(0) when EXIT_ON_CLOSE set. (setDefaultCloseOperation): Make public. Check argument. Add API doc. * javax/swing/JViewport.java (JViewport): Make constructor public. From-SVN: r80945
Diffstat (limited to 'libjava/javax/swing/JFrame.java')
-rw-r--r--libjava/javax/swing/JFrame.java43
1 files changed, 30 insertions, 13 deletions
diff --git a/libjava/javax/swing/JFrame.java b/libjava/javax/swing/JFrame.java
index 864f6ba..89d109f 100644
--- a/libjava/javax/swing/JFrame.java
+++ b/libjava/javax/swing/JFrame.java
@@ -1,5 +1,5 @@
/* JFrame.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,16 +57,11 @@ import javax.accessibility.AccessibleContext;
*
* @author Ronald Veldema (rveldema@cs.vu.nl)
*/
-public class JFrame extends Frame
+public class JFrame extends Frame implements WindowConstants
{
- public final static int HIDE_ON_CLOSE = 0;
- public final static int EXIT_ON_CLOSE = 1;
- public final static int DISPOSE_ON_CLOSE = 2;
- public final static int DO_NOTHING_ON_CLOSE = 3;
-
protected AccessibleContext accessibleContext;
- private int close_action = EXIT_ON_CLOSE;
+ private int close_action = HIDE_ON_CLOSE;
/***************************************************
@@ -192,7 +187,7 @@ public class JFrame extends Frame
return accessibleContext;
}
- int getDefaultCloseOperation()
+ public int getDefaultCloseOperation()
{ return close_action; }
@@ -212,7 +207,7 @@ public class JFrame extends Frame
{
case EXIT_ON_CLOSE:
{
- System.exit(1);
+ System.exit(0);
break;
}
case DISPOSE_ON_CLOSE:
@@ -241,8 +236,30 @@ public class JFrame extends Frame
}
}
-
- void setDefaultCloseOperation(int operation)
- { close_action = operation; }
+ /**
+ * Defines what happens when this frame is closed. Can be one off
+ * <code>EXIT_ON_CLOSE</code>,
+ * <code>DISPOSE_ON_CLOSE</code>,
+ * <code>HIDE_ON_CLOSE</code> or
+ * <code>DO_NOTHING_ON_CLOSE</code>.
+ * The default is <code>HIDE_ON_CLOSE</code>.
+ * When <code>EXIT_ON_CLOSE</code> is specified this method calls
+ * <code>SecurityManager.checkExit(0)</code> which might throw a
+ * <code>SecurityException</code>. When the specified operation is
+ * not one of the above a <code>IllegalArgumentException</code> is
+ * thrown.
+ */
+ public void setDefaultCloseOperation(int operation)
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null && operation == EXIT_ON_CLOSE)
+ sm.checkExit(0);
+
+ if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE
+ && operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE)
+ throw new IllegalArgumentException("operation = " + operation);
+
+ close_action = operation;
+ }
}