java swing应用程序组件不合适

时间:2016-11-07 10:24:12

标签: java swing

我对Java application有疑问 组件似乎不合适。 只在一台计算机上出现问题。操作系统为Windows 10,周年纪念日更新。我不确定它是否相关,但我测试的其他计算机应用程序没有周年纪念更新。 使这台计算机与众不同的另一件事是显卡是英特尔HD graphics 3000(也不确定它是否相关)。

我不是专家,当我试图解决这个问题时,我感觉自己像个迷雾的孩子。

应用程序是用java 7 sdk编写的。但它在这台计算机上的7和8都看起来并不好看,而在我测试的其他每台计算机上看起来都很好。我不确定我是否正确的方向,但将环境变量J2D_D3D_NO_HWCHECK设置为“真”只会让事情变得更糟。

我发布了2个截图。第一个来自计算机,它是错位的,第二个是它应该是什么样子。这只是我在申请中可以看到的许多差异。

problem noproblem

更新: 我缩小了这个问题。在Windows和Windows Classic LookAndFeel中创建的差距更大。

try {
        javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (Exception e) {

    }
    System.out.println(javax.swing.LayoutStyle.getInstance().getPreferredGap(new javax.swing.JLabel(), new javax.swing.JLabel(), javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.SwingConstants.SOUTH, new javax.swing.JPanel()));

我提供的代码根据机器给我7或6。我尝试在Windows 10周年纪念更新的两台机器上运行它,但我仍然得到不同的结果。将LookAndFeel更改为CrossPlatform可以解决此问题。虽然它可能会在应用程序的不同面板中引起更多问题。 我无法确定在具有相同操作系统版本的不同计算机上从同一个类获取不同值的原因。

1 个答案:

答案 0 :(得分:0)

如果有人有兴趣我解决了这个问题

更改控制面板>外观和个性化>显示>使文字和其他项目变大或变小

使默认按钮字体大小变大。 Windows LookAndFeel使用默认按钮字体大小来计算LayoutStyle中组件之间的间隙大小。如果未设置LayoutStyle,则LayoutStyle用作所有组件的默认布局。

将文字大小调整为125%会导致字体大小增加2点。在Windows LookAndFeel中包含所有数学之后,它使默认的小间隙大小从6点增加到7。