JFrame可以通过
setExtendedState(JFrame.MAXIMIZED_BOTH);
来达到全屏的效果。
但是比较奇怪的是,如果一个frame是单独运行,上面的语句会全屏(遮住windows任务栏),如果是被另外一个dialog调用(比如输入登录密码后出现frame),就会变成一般windows状态(最大化,不遮住windows任务栏)。
如果是一个frame打开另外一个frame,也会有遮住windows任务栏的效果。无法掌握其实际规律,只能自己设置他的大小来控制全屏或者最大化效果:
1. 不遮住任务栏:
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle bounds = new Rectangle(screenSize);
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration());
bounds.x += insets.left;
bounds.y += insets.top;
bounds.width -= insets.left + insets.right;
bounds.height -= insets.top + insets.bottom;
setBounds(bounds);
2. 遮住任务栏:
getGraphicsConfiguration().getDevice().setFullScreenWindow(this);