Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java获取最大化状态窗口大小_Java_Window_Fullscreen_Noborder - Fatal编程技术网

Java获取最大化状态窗口大小

Java获取最大化状态窗口大小,java,window,fullscreen,noborder,Java,Window,Fullscreen,Noborder,我正在开发一个多平台游戏,我想制作一个全屏无边框窗口,这就是我遇到LINUX操作系统问题的地方 对于WINDOWS系统,我使用了Toolkit.getDefaultToolkit().getScreenSize()方法来获得完整的屏幕大小,它工作得很好,但对于LINUX,由于LINUX栏的缘故,我的屏幕更宽、更高 *我的回答中的解决方案如下您可以看看。这将使您的程序能够完全访问整个屏幕,无需担心任务/停靠条等 或者你可以做类似的事情 GraphicsDevice gd = GraphicsEnv

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

对于WINDOWS系统,我使用了Toolkit.getDefaultToolkit().getScreenSize()方法来获得完整的屏幕大小,它工作得很好,但对于LINUX,由于LINUX栏的缘故,我的屏幕更宽、更高

*我的回答中的解决方案如下

您可以看看。这将使您的程序能够完全访问整个屏幕,无需担心任务/停靠条等

或者你可以做类似的事情

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和宽度/高度),屏幕插入设备并更新屏幕边界,以考虑任务栏和其他系统资源等因素

您也可以简单地尝试使用类似的方法,将窗口置于
框架中。将两者最大化,让它为您完成工作*解决方案
在浏览了好几个小时的互联网之后,我已经找到了一个解决方案,当窗口处于最大化状态时(比如你按下框上的最大化方块),可以得到窗口的最大允许大小,注意所有操作系统栏。
这里是方法:GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()

我感谢所有关于此主题的帮助,但我的软件必须允许用户设置所需的窗口大小,并自动全屏显示,还允许他们决定是否有边框。很难找到我一直在寻找的正确答案,我很高兴我已经找到了答案本网站采用问答形式。如果你已经解决了这个问题,而且以前在网站上没有人问过这个问题,请将问题表述为一个问题,然后用下面的正常方式回答。@AdiBradfield好的,下次我会考虑:(谢谢你通知我…@AdiBradfield done。。。