Java,获取当前屏幕的窗口边界

Java,获取当前屏幕的窗口边界,java,user-interface,awt,Java,User Interface,Awt,我使用两个不同分辨率的显示器。这将返回我的组件所在的显示: DisplayMode dm = invoker.getGraphicsConfiguration().getDevice().getDisplayMode(); 这将返回屏幕的窗口边界,并考虑任务栏: Rectangle windowBounds = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds(); 问题是,第二行代码总是返回主屏

我使用两个不同分辨率的显示器。这将返回我的组件所在的显示:

DisplayMode dm = invoker.getGraphicsConfiguration().getDevice().getDisplayMode();
这将返回屏幕的窗口边界,并考虑任务栏:

Rectangle windowBounds = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
问题是,第二行代码总是返回主屏幕边界,但当我的组件位于第二个屏幕上时,我希望获得辅助屏幕边界。有没有办法将这两行结合起来以获得当前的屏幕窗口边界


dm为当前屏幕设置了getHeight()和getWidth(),但它们不适用于windows任务栏。

据我所知,您希望获得当前设备的屏幕大小,以便个性化应用程序的尺寸。 您可以使用Java Toolkit类来实现这一点

首先获取并存储屏幕大小:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
然后以整数形式存储屏幕的宽度和高度:

// screen size width
int screenWidth = screenSize.getWidth;
// screen size height
int screenHeight = screenSize.getHeight;

将宽度和高度存储为整数后,就可以像使用其他基本变量一样使用和比较它们了。

我编写Java GUI已经将近20年了,从来都不需要屏幕大小。为什么你的应用程序需要它?另请参见@AndrewThompson,我有一个JPopMenu,它与show()方法一起放置。当调用程序过于靠近Windows任务栏时,JPopMenu将绘制在任务栏下方。我已经使用了解决方案来偏移y位置,它起作用了,但是如果有两个分辨率不同的监视器,GraphicEnvironment仍然使用主监视器的大小值,即使JPopMenu和invoker在第二个监视器上。