读书人

JFrame全屏有关问题

发布时间: 2012-10-09 10:21:45 作者: rapoo

JFrame全屏问题

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);???

读书人网 >编程

热点推荐