Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字体显示在文本字段中非常小_Java_Swing_Fonts_Jtextfield - Fatal编程技术网

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

Java 字体显示在文本字段中非常小,java,swing,fonts,jtextfield,Java,Swing,Fonts,Jtextfield,我有这个类,我试图在文本字段中显示自定义字体,但是当我运行它时,字体非常小,就像2pxtiny。如果我只是运行font=newfont(“sans serif”,font.PLAIN,24)它在正确的字体大小下显示良好 下面是它的外观: 这里是当我只使用font=newfont(“sans serif”,font.PLAIN,24)时的样子 是什么导致小文本框使用自定义字体 public class Search extends JTextField{ public Search(

我有这个类,我试图在文本字段中显示自定义字体,但是当我运行它时,字体非常小,就像
2px
tiny。如果我只是运行
font=newfont(“sans serif”,font.PLAIN,24)它在正确的字体大小下显示良好

下面是它的外观:

这里是当我只使用
font=newfont(“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);

    }
}

font.deriveFont
有两个重载表单,它们可能非常相似。取
int
的设置字体样式,取
float
的设置字体大小。您正在调用
int
版本,而不是
float
版本。将
24
更改为
24.0f
,它将工作

Wow!我从另一门课上抄袭,那里甚至有一个浮动。谢谢你!所有LayoutManager接受的初始首选尺寸的JTextField(int)(不包括NullLayout)