package javax.swing;
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.LayoutManager;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import javax.accessibility.AccessibleContext;
public class JFrame extends Frame
implements WindowConstants, RootPaneContainer
{
private static final long serialVersionUID = -3362141868504252139L;
private static boolean defaultLookAndFeelDecorated;
private int close_action = HIDE_ON_CLOSE;
protected AccessibleContext accessibleContext;
protected JRootPane rootPane;
protected boolean rootPaneCheckingEnabled;
public JFrame()
{
super("JFrame");
frameInit();
}
public JFrame(String title)
{
super(title);
frameInit();
}
protected void frameInit()
{
super.setLayout(new BorderLayout(1, 1));
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
getRootPane(); }
public Dimension getPreferredSize()
{
return super.getPreferredSize();
}
public JMenuBar getJMenuBar()
{
return getRootPane().getJMenuBar();
}
public void setJMenuBar(JMenuBar menubar)
{
getRootPane().setJMenuBar(menubar);
}
public void setLayout(LayoutManager manager)
{
super.setLayout(manager);
}
public void setLayeredPane(JLayeredPane layeredPane)
{
getRootPane().setLayeredPane(layeredPane);
}
public JLayeredPane getLayeredPane()
{
return getRootPane().getLayeredPane();
}
public JRootPane getRootPane()
{
if (rootPane == null)
setRootPane(createRootPane());
return rootPane;
}
protected void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
rootPane = root;
add(rootPane, BorderLayout.CENTER);
}
protected JRootPane createRootPane()
{
return new JRootPane();
}
public Container getContentPane()
{
return getRootPane().getContentPane();
}
public void setContentPane(Container contentPane)
{
getRootPane().setContentPane(contentPane);
}
public Component getGlassPane()
{
return getRootPane().getGlassPane();
}
public void setGlassPane(Component glassPane)
{
getRootPane().setGlassPane(glassPane);
}
protected void addImpl(Component comp, Object constraints, int index)
{
super.addImpl(comp, constraints, index);
}
public void remove(Component comp)
{
getContentPane().remove(comp);
}
protected boolean isRootPaneCheckingEnabled()
{
return rootPaneCheckingEnabled;
}
protected void setRootPaneCheckingEnabled(boolean enabled)
{
rootPaneCheckingEnabled = enabled;
}
public void update(Graphics g)
{
paint(g);
}
protected void processKeyEvent(KeyEvent e)
{
super.processKeyEvent(e);
}
public static void setDefaultLookAndFeelDecorated(boolean decorated)
{
defaultLookAndFeelDecorated = decorated;
}
public static boolean isDefaultLookAndFeelDecorated()
{
return defaultLookAndFeelDecorated;
}
public AccessibleContext getAccessibleContext()
{
return accessibleContext;
}
public int getDefaultCloseOperation()
{
return close_action;
}
protected String paramString()
{
return "JFrame";
}
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
switch (e.getID())
{
case WindowEvent.WINDOW_CLOSING:
{
switch (close_action)
{
case EXIT_ON_CLOSE:
{
System.exit(0);
break;
}
case DISPOSE_ON_CLOSE:
{
dispose();
break;
}
case HIDE_ON_CLOSE:
{
setVisible(false);
break;
}
case DO_NOTHING_ON_CLOSE:
break;
}
break;
}
case WindowEvent.WINDOW_CLOSED:
case WindowEvent.WINDOW_OPENED:
case WindowEvent.WINDOW_ICONIFIED:
case WindowEvent.WINDOW_DEICONIFIED:
case WindowEvent.WINDOW_ACTIVATED:
case WindowEvent.WINDOW_DEACTIVATED:
break;
}
}
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;
}
}