Java获取MAXIMIZED状态窗口大小

时间:2015-09-13 22:57:50

标签: java window fullscreen noborder

我正在开发一个多平台游戏,我想制作一个全屏非边框窗口,这就是我遇到LINUX操作系统问题的地方。

对于WINDOWS系统,我使用 Toolkit.getDefaultToolkit()。getScreenSize()方法来获得完整的SCREEN SIZE并且工作正常,但是对于LINUX我的屏幕由于LINUX而更宽更高BARS。

*我的答案中的解决方案

1 个答案:

答案 0 :(得分:1)

您可以查看Full-Screen Exclusive Mode API。这将使您的程序完全访问整个屏幕,无需您担心任务/停靠栏等等

或者你可以做类似

的事情
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
Rectangle bounds = gd.getDefaultConfiguration().getBounds();
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(gd.getDefaultConfiguration());

Rectangle safeBounds = new Rectangle(bounds);
safeBounds.x += insets.left;
safeBounds.y += insets.top;
safeBounds.width -= (insets.left + insets.right);
safeBounds.height -= (insets.top + insets.bottom);

基本上所有这一切都是获取屏幕边界(x / y和宽度/高度),屏幕为设备插入内容并更新屏幕边界以考虑任务栏和其他系统资源等内容。

您也可以尝试使用Frame#setExtendedState之类的内容,这样您就可以将窗口放入Frame.MAXIMIZED_BOTH并让它为您完成工作