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

问题描述

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

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;

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