source: trunk/gcc/libjava/javax/swing/JFrame.java

Last change on this file was 1389, checked in by bird, 21 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 6.2 KB
Line 
1/* JFrame.java --
2 Copyright (C) 2002 Free Software Foundation, Inc.
3
4This file is part of GNU Classpath.
5
6GNU Classpath is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10
11GNU Classpath is distributed in the hope that it will be useful, but
12WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU Classpath; see the file COPYING. If not, write to the
18Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1902111-1307 USA.
20
21Linking this library statically or dynamically with other modules is
22making a combined work based on this library. Thus, the terms and
23conditions of the GNU General Public License cover the whole
24combination.
25
26As a special exception, the copyright holders of this library give you
27permission to link this library with independent modules to produce an
28executable, regardless of the license terms of these independent
29modules, and to copy and distribute the resulting executable under
30terms of your choice, provided that you also meet, for each linked
31independent module, the terms and conditions of the license of that
32module. An independent module is a module which is not derived from
33or based on this library. If you modify this library, you may extend
34this exception to your version of the library, but you are not
35obligated to do so. If you do not wish to do so, delete this
36exception statement from your version. */
37
38package javax.swing;
39
40import java.awt.*;
41import java.awt.event.*;
42
43import javax.accessibility.AccessibleContext;
44import javax.accessibility.AccessibleRole;
45import javax.accessibility.AccessibleState;
46import javax.accessibility.AccessibleStateSet;
47
48/**
49 * Unlike JComponent derivatives, JFrame inherits from
50 * java.awt.Frame. But also lets a look-and-feel component to its work.
51 *
52 * @author Ronald Veldema (rveldema@cs.vu.nl)
53 */
54public class JFrame extends Frame
55{
56 public final static int HIDE_ON_CLOSE = 0;
57 public final static int EXIT_ON_CLOSE = 1;
58 public final static int DISPOSE_ON_CLOSE = 2;
59 public final static int DO_NOTHING_ON_CLOSE = 3;
60
61 protected AccessibleContext accessibleContext;
62
63 private int close_action = EXIT_ON_CLOSE;
64
65
66 /***************************************************
67 *
68 * initia
69 *
70 *
71 *************/
72
73
74 public JFrame()
75 {
76 super("JFrame");
77 frameInit();
78 }
79
80 public JFrame(String title)
81 {
82 super(title);
83 frameInit();
84 }
85
86
87 /***************************************************
88 *
89 *
90 * methods, this part is shared with JDialog, JFrame
91 *
92 *
93 *************/
94
95
96 private boolean checking;
97 protected JRootPane rootPane;
98
99
100 protected void frameInit()
101 {
102 super.setLayout(new BorderLayout(1, 1));
103 getRootPane(); // will do set/create
104 }
105
106 public Dimension getPreferredSize()
107 {
108 Dimension d = super.getPreferredSize();
109 return d;
110 }
111
112 JMenuBar getJMenuBar()
113 { return getRootPane().getJMenuBar(); }
114
115 void setJMenuBar(JMenuBar menubar)
116 { getRootPane().setJMenuBar(menubar); }
117
118
119 public void setLayout(LayoutManager manager)
120 { super.setLayout(manager); }
121
122 void setLayeredPane(JLayeredPane layeredPane)
123 { getRootPane().setLayeredPane(layeredPane); }
124
125 JLayeredPane getLayeredPane()
126 { return getRootPane().getLayeredPane(); }
127
128 JRootPane getRootPane()
129 {
130 if (rootPane == null)
131 setRootPane(createRootPane());
132 return rootPane;
133 }
134
135 void setRootPane(JRootPane root)
136 {
137 if (rootPane != null)
138 remove(rootPane);
139
140 rootPane = root;
141 add(rootPane, BorderLayout.CENTER);
142 }
143
144 JRootPane createRootPane()
145 { return new JRootPane(); }
146
147 Container getContentPane()
148 { return getRootPane().getContentPane(); }
149
150 void setContentPane(Container contentPane)
151 { getRootPane().setContentPane(contentPane); }
152
153 Component getGlassPane()
154 { return getRootPane().getGlassPane(); }
155
156 void setGlassPane(Component glassPane)
157 { getRootPane().setGlassPane(glassPane); }
158
159
160 protected void addImpl(Component comp, Object constraints, int index)
161 { super.addImpl(comp, constraints, index); }
162
163
164 public void remove(Component comp)
165 { getContentPane().remove(comp); }
166
167 protected boolean isRootPaneCheckingEnabled()
168 { return checking; }
169
170
171 protected void setRootPaneCheckingEnabled(boolean enabled)
172 { checking = enabled; }
173
174
175 public void update(Graphics g)
176 { paint(g); }
177
178 protected void processKeyEvent(KeyEvent e)
179 { super.processKeyEvent(e); }
180
181 /////////////////////////////////////////////////////////////////////////////////
182
183 public AccessibleContext getAccessibleContext()
184 {
185 return accessibleContext;
186 }
187
188 int getDefaultCloseOperation()
189 { return close_action; }
190
191
192
193 protected String paramString()
194 { return "JFrame"; }
195
196
197 protected void processWindowEvent(WindowEvent e)
198 {
199 // System.out.println("PROCESS_WIN_EV-1: " + e);
200 super.processWindowEvent(e);
201 // System.out.println("PROCESS_WIN_EV-2: " + e);
202 switch (e.getID())
203 {
204 case WindowEvent.WINDOW_CLOSING:
205 {
206 switch(close_action)
207 {
208 case EXIT_ON_CLOSE:
209 {
210 System.out.println("user requested exit on close");
211 System.exit(1);
212 break;
213 }
214 case DISPOSE_ON_CLOSE:
215 {
216 System.out.println("user requested dispose on close");
217 dispose();
218 break;
219 }
220 case HIDE_ON_CLOSE:
221 {
222 setVisible(false);
223 break;
224 }
225 case DO_NOTHING_ON_CLOSE:
226 break;
227 }
228 break;
229 }
230
231 case WindowEvent.WINDOW_CLOSED:
232 case WindowEvent.WINDOW_OPENED:
233 case WindowEvent.WINDOW_ICONIFIED:
234 case WindowEvent.WINDOW_DEICONIFIED:
235 case WindowEvent.WINDOW_ACTIVATED:
236 case WindowEvent.WINDOW_DEACTIVATED:
237 break;
238 }
239 }
240
241
242 void setDefaultCloseOperation(int operation)
243 { close_action = operation; }
244
245}
Note: See TracBrowser for help on using the repository browser.