如何在Java中获得屏幕分辨率?

2022-08-31 07:25:08

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

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


答案 1

您可以使用该方法获取屏幕尺寸。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格式获得屏幕分辨率,则必须使用 上的方法。getScreenResolution()Toolkit


资源:


答案 2

此代码将枚举系统上的图形设备(如果安装了多个监视器),您可以使用该信息来确定监视器关联性或自动放置(某些系统在应用程序在后台运行时使用小侧监视器进行实时显示,并且可以通过大小,屏幕颜色, 等):

// 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
}

推荐