0

我有这个类,我正在尝试在文本字段中显示自定义字体,但是当我运行它时,字体超级小,就像2px小一样。如果我只是运行font = new Font("sans-serif", Font.PLAIN, 24);它以正确的字体大小显示就好了。

这是它的样子:

小的

这是我只使用时的样子font = new Font("sans-serif", Font.PLAIN, 24);

大的

是什么导致带有自定义字体的小文本框?

public class Search extends JTextField{

    public Search(int width){
        super(width);

        Font font;
        String filename = "/media/fonts/SourceCodePro-Light.ttf";

        try{
            InputStream is = this.getClass().getResourceAsStream(filename);
            font = Font.createFont(Font.TRUETYPE_FONT, is);
            font = font.deriveFont(24);
        }catch(FontFormatException | IOException ex){
            font = new Font("sans-serif", Font.PLAIN, 24);
        }

        this.setFont(font);

    }
}
4

1 回答 1

1

font.deriveFont有两种可能非常相似的重载形式。一个int设置字体样式,一个float设置字体大小。您正在调用int版本而不是float版本。更改2424.0f,它将起作用

于 2013-07-20T21:56:21.057 回答