Java:获取一个/所有可用显示器(而不是整个桌面)的分辨率?
我有两个不同尺寸的显示器,使用(我相信)TwinView 连接在一起。
我尝试
System.out.println(Toolkit.getDefaultToolkit().getScreenSize());
得出
java.awt.Dimension[width=2960,height=1050]
如果将两个显示器放在一起,
以下结论是正确的。 相反,我希望能够实现以下之一:
- 获取当前显示器的分辨率
- 获取主显示器的分辨率
I have two different-sized monitors, connected together using (I believe) TwinView.
I tried
System.out.println(Toolkit.getDefaultToolkit().getScreenSize());
and get
java.awt.Dimension[width=2960,height=1050]
which is true if you count both monitors together.
Instead of this, I would like to be able achieving one of the following:
- getting resolution of the current monitor
- getting resolution of the main monitor
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用GraphicsEnvironment。
特别是, getScreenDevices() 返回 GraphicsDevice 可以从中读取显示模式的宽度/高度的对象。
例子:
you'll want to use the GraphicsEnvironment.
In particular, getScreenDevices() returns an array of GraphicsDevice objects from which you can read the width/height of the display mode.
Example:
当我试图实现一种在单个屏幕截图中捕获任何给定计算机上的所有屏幕的方法时,我遇到了这个线程,并且无法找到如何在其他地方完成此操作的答案。
就我而言,
Toolkit.getDefaultToolkit().getScreenSize()
只会返回主显示器的分辨率。 我使用以下方法来创建一个矩形,该矩形的原点位于所有监视器之间的最左上角,并且足够大以捕获 GraphicsEnvironment 提供的所有监视器上的所有内容。 getLocalGraphicsEnvironment().getScreenDevices() 当传递给Robot().createScreenCapture
时。I came accross this thread when trying to implement a way to capture all screens on any given computer in a single screenshot, and could not find an answer as to how to accomplish this anywhere else.
In my case,
Toolkit.getDefaultToolkit().getScreenSize()
would only return the resolution of the primary monitor. I made the following method to create aRectangle
that has an origin at the top-leftmost point between all monitors, and is large enough to capture all the content on all the monitors supplied byGraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
when passed toRobot().createScreenCapture
.