显示器自己有个物理尺寸,windows 可以通过如下的方式设置缩放比例,还可以设置显示器分辨率;

Java 获取显示器的尺寸,缩放比例,分辨率_缩放比例

public class ScreenSizeTest {
private static Logger logger = LoggerFactory.getLogger(ScreenSizeTest.class);

public static void main(String[] args) {
Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = defaultToolkit.getScreenSize();
double width2 = screenSize.getWidth();
double height2 = screenSize.getHeight();
logger.info(String.format("显示器尺寸:%s x %s",width2,height2));

GraphicsDevice graphDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode disMode = graphDevice.getDisplayMode();
int width = disMode.getWidth();
int height = disMode.getHeight();
logger.info(String.format("显示器分辨率:%s x %s",width,height));

GraphicsConfiguration gc = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice().
getDefaultConfiguration();

AffineTransform tx = gc.getDefaultTransform();
double uiScaleX = tx.getScaleX();
double uiScaleY = tx.getScaleY();
logger.info(String.format("显示器分辨率缩放比例,X:%s,Y:%s",uiScaleX,uiScaleY));
}
}