我正在开发一个多平台游戏,我想制作一个全屏非边框窗口,这就是我遇到LINUX操作系统问题的地方。
对于WINDOWS系统,我使用 Toolkit.getDefaultToolkit()。getScreenSize()方法来获得完整的SCREEN SIZE并且工作正常,但是对于LINUX我的屏幕由于LINUX而更宽更高BARS。
*我的答案中的解决方案
答案 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
并让它为您完成工作