【发布时间】:2011-04-27 07:00:21
【问题描述】:
在我的 Java 应用程序中,我有一个 JFrame 窗口,如何从我的 Java 程序中最小化它?
【问题讨论】:
标签: java swing jframe minimize
在我的 Java 应用程序中,我有一个 JFrame 窗口,如何从我的 Java 程序中最小化它?
【问题讨论】:
标签: java swing jframe minimize
用frame.setState(Frame.ICONIFIED)最小化
使用frame.setState(Frame.NORMAL)恢复
【讨论】:
您可以通过两种方式做到这一点:
JFrame frame = new JFrame("Test");
frame.setExtendedState(JFrame.ICONIFIED); // One way
frame.setState(JFrame.ICONIFIED); // Another way
【讨论】:
如果您尝试为组件的事件编写代码,请尝试以下代码。并确保包含此代码的类由 Frame 类扩展
private void closeMouseClicked(java.awt.event.MouseEvent evt){
this.setState(1);
}
或者创建一个Frame类的实例并调用setState(1);
【讨论】:
this.setState(1); 魔术常量规则,既然可以直接写1,为什么还要浪费时间写JFrame.ICONIFIED? :)
1 是什么意思;它很神秘并且会损害可读性,这就是为什么
您可以使用以下代码:
this.setState(YourJFrame.ICONIFIED);
你可以使用这段代码来最大化它:
this.setExtendedState(MAXIMIZED_BOTH);
【讨论】:
最小化:
frame.setState(Frame.ICONIFIED);
另一种最小化方法:
frame.setExtendedState(JFrame.ICONIFIED);
正常尺寸:
frame.setState(Frame.NORMAL);
正常大小的另一种方法:
frame.setExtendedState(JFrame.NORMAL);
最大化:
frame.setState(Frame.MAXIMIZED_BOTH);
另一种最大化方式:
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
全屏最大化:
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0];
try { device.setFullScreenWindow((Window) frame); } finally { device.setFullScreenWindow(null); }
有关详细信息,请参阅JFrame documentation。
【讨论】:
另一种方法
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_ICONIFIED));
【讨论】: