我有两个使用相同分辨率 (1280x1024) 的屏幕,但其中一个的刷新率为 59.9 HZ,另一个的刷新率为 75 HZ。我有一个使用 Java 开发的完整软件(在 OpenSuse 10.0 下运行)。问题在于该软件中的 Jtable 在两个屏幕上的显示方式不同:它们在一个屏幕上完美显示,而在另一个屏幕上,列的宽度不断增加,从而隐藏了一些列。 我能够从两个屏幕获得的另一个区别是当我使用 Toolkit.getDefaultToolkit().getScreenResolution() 时,它在“良好显示”屏幕上为我提供了 93,在“不良显示”屏幕上为我提供了 95。
我的问题是,为什么使用相同分辨率的两个屏幕会以不同的方式显示 GUI 组件?它与屏幕的刷新率或 DPI 是否有关系?
最佳答案
检查您可用的字体。逻辑字体名称(serif、sansserif、monospaced、dialog、dialoginput)是根据计算机上可用的字体创建的。
根据 Font javadoc :
Typically, each logical font name maps to several physical fonts in order to cover a large range of characters.
因此,如果可用字体不匹配,Java 可能会替换不同的物理字体字符。这可能会导致您所描述的行为。
关于相同屏幕分辨率下的 Java 布局差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6371559/