gpt4 book ai didi

java - 在 Windows 和 Linux 上运行 java awt 代码时的不同结果

转载 作者:可可西里 更新时间:2023-11-01 10:08:13 26 4
gpt4 key购买 nike

我有一些代码(不幸的是不是我写的,否则我会知道从哪里开始寻找解决方案)绘制一些折线图。当我在我的 Windows 机器和 Linux 机器上运行代码时,我得到不同的结果:在 Linux 机器上,图例周围的边框绘制的高度较低,导致当项目超过 3 个时出现一些丑陋的问题图例。

使用时是否有一些已知的差异

int getHeight(Graphics2D g, String text) {
Rectangle2D bounds = g.getFont().getStringBounds(text, g.getFontMetrics().getFontRenderContext());
return bounds.getHeight();
}

或者问题出在哪里?

Windows :

C:\>java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Linux:

$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.10) (6b20-1.9.10-0ubuntu1~10.04.3)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)

更新:

这是一个舍入错误,似乎只发生在 linux 字体上,而不会出现在 windows 字体上。奇怪。

最佳答案

您的方法基于 getFontMetrics(),返回当前字体的字体规范。我假设你在你的程序中使用默认字体,并且它们在不同的操作系统中是不同的,所以结果高度可能不同。

关于java - 在 Windows 和 Linux 上运行 java awt 代码时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9077149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com