fontpalace.com から Helvetica フォントをダウンロードし (Helvetica を検索してください)、Font.createFont() を使用して Java アプリケーションに組み込みました。しかし、フォント メトリクスはこれでは機能しません。つまり、計算されたラベルの最小サイズが間違っています。
この問題を示す簡単なサンプル アプリケーション:
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() コマンドが機能し、テキストが読めるようにウィンドウのサイズが変更されます。ただし、これでは pack() が正しく機能せず、ラベルとウィンドウのサイズが非常に小さいサイズに変更され、テキストが切り取られます。Linux と Windows でこの問題が発生しました。
何か不足していますか?一部の ttf フォント ファイルは機能するようですが、一部は機能しないようです。しかし、正常に動作する Helvetica (Neue Helvetica などではなく、オリジナルのもの) を見つけることができませんでした。
何か案は?