Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java swing应用程序组件不合适_Java_Swing - Fatal编程技术网

java swing应用程序组件不合适

java swing应用程序组件不合适,java,swing,Java,Swing,我对Java应用程序有问题 组件似乎不合适。 问题只在一台计算机上出现。操作系统是带有周年更新的Windows 10。我不确定它是否相关,但我测试应用程序的另一台计算机没有周年更新。 使这台计算机与众不同的另一件事是图形卡,它是IntelHD graphics 3000(也不确定它是否相关) 我不是专家,当我试图解决这个问题时,我感觉自己像个迷雾中的孩子 应用程序是用Java7SDK编写的。但是它在这台计算机上的jre 7和8上看起来都不好,而在我测试的其他每台计算机上,它在两个jre上看起来都

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

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

应用程序是用Java7SDK编写的。但是它在这台计算机上的jre 7和8上看起来都不好,而在我测试的其他每台计算机上,它在两个jre上看起来都很好。我不确定我的方向是否正确,但将环境变量
J2D\u D3D\u NO\u HWCHECK
设置为“true”只会让事情变得更糟

我发布了2个截图。第一个是电脑放错了地方,第二个是它应该是什么样子。这只是我在应用中看到的众多差异中的一个

更新: 我缩小了这个问题的范围。Windows和Windows经典外观之间的差距更大

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更改为跨平台解决了这种情况下的问题。尽管它可能会在应用程序中的不同面板中引起更多问题。
我无法确定在具有相同操作系统版本的不同计算机上从同一类获取不同值的原因。

如果有人感兴趣,我解决了此问题

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

使默认按钮字体变大。windows LookAndFeel使用默认按钮字体大小来计算LayoutStyle中组件之间的间距大小。如果未设置布局样式,则将其用作所有组件上的默认布局


将文本放大到125%会导致字体大小增加2个百分点。在Windows LookAndFeel中包含所有数学运算后,它使默认小间隙大小从6点增加到7点。

检查帧是否具有预定义或计算的大小(使用方法
JFrame.setSize()
-预定义或
JFrame.pack()
-计算设置帧大小)。如果是预定义的,您的问题是,对于某些操作系统,框架可能需要更多的位置。在这种情况下,最好的解决方案是切换到计算大小(如果可能的话)。为了更快地获得更好的帮助,发布or。问题是为Jpanel制作的固定大小(280)太小。NetBeansGUI显示Jpanel更喜欢垂直尺寸274,而在其他计算机上则是258。所以我又查了一些。大多数组件之间的垂直间隙设置为“默认小”,实际为7。在办公室的其他每台计算机上,它也是“默认的小型”,即6。为什么在不同的计算机上有不同的值?为什么在不同的计算机上有不同的值?各种各样的原因。不同分辨率、不同图形卡的不同尺寸显示器。对于阅读本文的其他人来说,这就是为什么所有Swing GUI都应该在不使用任何窗口生成器的情况下创建。Swing GUI应该使用适当的方法构建。我不知道什么是“默认的小型”。但在Swing中,组件的大小往往因设置不同而不同。例如,如果有人将DPI设置为标准(96)之外的另一个值