我怎样才能在java中获得屏幕分辨率?

新手上路,请多包涵

如何获得以像素为单位的屏幕分辨率(宽度 x 高度)?

我正在使用 JFrame 和 java swing 方法。

原文由 AndreDurao 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 570
2 个回答

您可以使用 Toolkit.getScreenSize() 方法获取屏幕尺寸。

 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();


在多显示器配置中,你应该使用这个:

 GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
int width = gd.getDisplayMode().getWidth();
int height = gd.getDisplayMode().getHeight();


如果你想获得 DPI 中的屏幕分辨率,你必须在 — 上使用 Toolkit getScreenResolution() 方法。


资源 :

原文由 Colin Hebert 发布,翻译遵循 CC BY-SA 3.0 许可协议

此代码将枚举系统上的图形设备(如果安装了多个显示器),您可以使用该信息来确定显示器关联或自动放置(某些系统在应用程序运行时使用小型侧面显示器进行实时显示)背景,这样的显示器可以通过尺寸、屏幕颜色等来识别):

 // Test if each monitor will support my app's window
// Iterate through each monitor and see what size each is
GraphicsEnvironment ge      = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[]    gs      = ge.getScreenDevices();
Dimension           mySize  = new Dimension(myWidth, myHeight);
Dimension           maxSize = new Dimension(minRequiredWidth, minRequiredHeight);
for (int i = 0; i < gs.length; i++)
{
    DisplayMode dm = gs[i].getDisplayMode();
    if (dm.getWidth() > maxSize.getWidth() && dm.getHeight() > maxSize.getHeight())
    {   // Update the max size found on this monitor
        maxSize.setSize(dm.getWidth(), dm.getHeight());
    }

    // Do test if it will work here
}

原文由 Rick Hodgin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题