java - Jar文件显示的屏幕尺寸与IntelliJ不同

标签 java gradle jar multiple-monitors

以下代码表现得很奇怪。在IntelliJ中,控制台文本为

'3840'



而with Gradle编译的jar文件显示

'1920'



我有一个双显示器,都是全高清
public void getScreenSize() {
    GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] graphicsDevices = graphicsEnvironment.getScreenDevices();
    System.out.println(graphicsDevices[0].getDisplayMode().getWidth());
}

最佳答案

好吧,我没有找出问题所在。但是我写了一个小的解决方法来计算主监视器的大小。请记住,此代码仅在所有监视器具有相同的解决方案时才起作用:

public static Dimension getScreenSize() {
        Dimension returnValue = Toolkit.getDefaultToolkit().getScreenSize();
        double height = returnValue.getHeight();
        double width = returnValue.getWidth();
        int screenNumbers = (int) Math.ceil(width/height)/2;
        if (screenNumbers != 1){
            width /= screenNumbers;
        }
        returnValue = new Dimension((int)width, (int)height);
        return returnValue;
}

关于java - Jar文件显示的屏幕尺寸与IntelliJ不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203846/

相关文章:

java - 将库路径添加到 jar 文件

java - 特殊字符在 Java IDE 中显示正常,但在从 jar 文件启动的程序中不显示

java - 在 JSF 2.0 中注入(inject) Bean

Gradle,不同版本的直接和传递依赖

java - 相机对话框不保存 exif 数据?

java - Gradle 错误 ':app:dexDebug'

android - build.gradle无法正常工作。红色下划线但无掉毛错误

java - Maven 解决依赖问题

java - 快速单击时 PopupWindow 中的按钮会变成透明吗?

java - Java的for循环中是否有线程安全优化?