1
我從fontpalace.com下載了Helvetica字體(僅搜索Helvetica),並使用Font.createFont()將其包含在Java應用程序中。但字體指標不適用於此,即標籤的計算最小尺寸是錯誤的。在Font.createFont中使用truetype字體文件時文本度量標準錯誤
一個簡單的示例應用程序,它顯示了這個問題:
package fontTest;
import java.awt.Font;
import java.io.InputStream;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FontTest extends JFrame {
public FontTest() {
JLabel label = new JLabel("Test");
try {
InputStream is = FontTest.class.getResourceAsStream("Helvetica.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, is);
label.setFont(font.deriveFont(12f));
} catch (Exception ex) {
ex.printStackTrace();
}
add(label);
pack();
}
public static void main(String[] args) {
FontTest fontTest = new FontTest();
fontTest.setVisible(true);
}
}
如果您刪除與label.setFont行(..),然後打包()命令的工作和窗口被調整大小,使得文本是可讀的。但是,由此,pack()不能正常工作,導致標籤以及窗口被調整爲非常小的尺寸,從而切斷了文本。我在Linux和Windows上遇到了這個問題。
我錯過了什麼嗎?它看起來像一些ttf字體文件的工作,而不是一些。但我無法找到正確工作的Helvetica(原始的Helvetica,而不是Neue Helvetica或其他)。
任何想法?
謝謝!這是一個令人尷尬的錯誤,在那裏放置一個int。使用「f」,結果稍微有所改進,但仍然是度量計算錯誤,因此窗口有點過小,並且會切斷部分文本。 – Masi
我相應修正了上面的代碼。 – Masi