字体在文本字段中显示非常小

时间:2013-07-20 21:35:42

标签: java swing fonts jtextfield

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

这是它的样子:

Small

以下是我仅使用font = new Font("sans-serif", Font.PLAIN, 24);

时的样子

Large

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

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);

    }
}

1 个答案:

答案 0 :(得分:1)

font.deriveFont有两个重载形式,可能非常相似。采用int的人设置字体样式,采用float的人设置字体大小。你正在调用int版本而不是float版本。将24更改为24.0f,即可生效