Java 如何获得桌面的大小,不包括;系统托盘“;摇摆不定

Java 如何获得桌面的大小,不包括;系统托盘“;摇摆不定,java,swing,Java,Swing,如何计算Swing中桌面(不包括系统托盘)的大小?我想调整应用程序框架的大小以填充该大小Toolkit.getScreenSize()返回包括系统托盘在内的大小。那么您想将应用程序设置为全屏,是吗?在这种情况下,请执行以下操作: frame.setExtendedState(Frame.MAXIMIZED_BOTH); 所以你想将应用程序设置为全屏,是吗?在这种情况下,请执行以下操作: frame.setExtendedState(Frame.MAXIMIZED_BOTH); 试一试

如何计算Swing中桌面(不包括系统托盘)的大小?我想调整应用程序框架的大小以填充该大小
Toolkit.getScreenSize()
返回包括系统托盘在内的大小。

那么您想将应用程序设置为全屏,是吗?在这种情况下,请执行以下操作:

frame.setExtendedState(Frame.MAXIMIZED_BOTH);  

所以你想将应用程序设置为全屏,是吗?在这种情况下,请执行以下操作:

frame.setExtendedState(Frame.MAXIMIZED_BOTH);  
试一试

试一试


要将Swing应用程序JFrame设置为最大化,请使用以下命令:

frame.setExtendedState(frame.getExtendedState() | Frame.MAXIMIZED_BOTH);
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
要获得最大化帧的大小,请使用以下命令:

frame.setExtendedState(frame.getExtendedState() | Frame.MAXIMIZED_BOTH);
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();

要将Swing应用程序JFrame设置为最大化,请使用以下命令:

frame.setExtendedState(frame.getExtendedState() | Frame.MAXIMIZED_BOTH);
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
要获得最大化帧的大小,请使用以下命令:

frame.setExtendedState(frame.getExtendedState() | Frame.MAXIMIZED_BOTH);
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();

你是说任务栏吗?没什么复杂的。只是试着打开占据系统托盘之外所有屏幕区域的主框架。你是说任务栏吗?没什么复杂的。只是试着打开占据系统托盘之外所有屏幕区域的主框架。好吧,我没有写这段代码。对frame.setExtendedState(frame.MAXIMIZED_两者)的调用已经存在。但是,如果根窗格上没有显式的setPreferredSize(),它所占的空间将远远小于整个桌面。我正在使用Toolkit.getScreenSize()调用setPreferredSize()。除了在系统托盘上粗暴地运行外,此操作“有效”。所以我想如果我能计算出我想要的尺寸,这就行了。毫无疑问,GUI中存在大量的罪恶,但这似乎至少会掩盖它们。:-)嗯,这不是我写的代码。对frame.setExtendedState(frame.MAXIMIZED_两者)的调用已经存在。但是,如果根窗格上没有显式的setPreferredSize(),它所占的空间将远远小于整个桌面。我正在使用Toolkit.getScreenSize()调用setPreferredSize()。除了在系统托盘上粗暴地运行外,此操作“有效”。所以我想如果我能计算出我想要的尺寸,这就行了。毫无疑问,GUI中存在大量的罪恶,但这似乎至少会掩盖它们。:-)我接受这个答案,尽管它对我来说并不完全。由于此GUI中已经存在“大量错误”,因此有必要设置根窗格的首选大小。尽管如此,还是要感谢您,因为getRootPane().setPreferredSize(env.getMaximumWindowBounds().getSize()完成了这个任务。这就是我要找的API。@SteveCohen,我也会在我的案例中尝试。我不接受这个答案,因为它不太正确。env.getMaximumWindowBounds()确实返回桌面的大小减去任务栏的大小,但我仍然需要设置根窗格的首选大小,并且我需要减去框架边框的水平和垂直插入,这似乎是在使其可见之前无法获得的。从哪里可以了解框架边框的大小?我在UI默认值中看不到这一点,我认为这一定是它的来源。好的,现在重新接受它。嗯,我可以在框架上调用setPreferredSize()。不知道为什么我认为我必须在根窗格上这样做。我猜是因为它不是一个JComponent,但它仍然是一个组件。诀窍是frame.setPreferredSize(env.getMaximumWindowBounds());我接受这个答案,尽管它对我来说并不完全。由于此GUI中已经存在“大量错误”,因此有必要设置根窗格的首选大小。尽管如此,还是要感谢您,因为getRootPane().setPreferredSize(env.getMaximumWindowBounds().getSize()完成了这个任务。这就是我要找的API。@SteveCohen,我也会在我的案例中尝试。我不接受这个答案,因为它不太正确。env.getMaximumWindowBounds()确实返回桌面的大小减去任务栏的大小,但我仍然需要设置根窗格的首选大小,并且我需要减去框架边框的水平和垂直插入,这似乎是在使其可见之前无法获得的。从哪里可以了解框架边框的大小?我在UI默认值中看不到这一点,我认为这一定是它的来源。好的,现在重新接受它。嗯,我可以在框架上调用setPreferredSize()。不知道为什么我认为我必须在根窗格上这样做。我猜是因为它不是一个JComponent,但它仍然是一个组件。诀窍是frame.setPreferredSize(env.getMaximumWindowBounds());