gpt4 book ai didi

java - 自定义 JLabel 字体太小

转载 作者:行者123 更新时间:2023-12-04 05:18:49 24 4
gpt4 key购买 nike

我试图在 JLabel 中显示自定义字体,但是当我创建它时,它显示为非常小的文本。我什至无法判断它是否使用了我指定的字体,因为文本太小了。这是the font that I used .那么我在做什么导致字体如此之小?

package sscce;

import java.awt.Font;
import java.awt.FontFormatException;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main extends JFrame{

public Main(){
this.setSize(300, 300);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


GameFont fnt = new GameFont("/home/ryan/Documents/Java/Space Shooters/src/media/fonts/future.ttf", 20);
Label lbl = fnt.createText("Level 1 asdf sadf saf saf sf ");

this.add(lbl);
}

public static void main(String[] args){
Main run = new Main();
}

public class GameFont{

protected Font font;

public GameFont(String filename, int fontSize){
try{
File fontFile = new File(filename);
font = Font.createFont(Font.TRUETYPE_FONT, fontFile);
font.deriveFont(fontSize);
}catch(FontFormatException | IOException e){
}
}

public Label createText(String text){
Label lbl = new Label(font);
lbl.setText(text);
return lbl;
}
}

public class Label extends JLabel{

public Label(Font font){
this.setFont(font);
}
}
}

最佳答案

请再看Font API ,deriveFont(...) 方法。您想传入 float ,不是 国际对于大小,因为如果传入 int 参数,该方法将期望这意味着设置字体的样式(粗体、斜体、下划线),而不是其大小。您还需要使用 deriveFont(...) 返回的 Font方法。

所以改变这个:

   public GameFont(String filename, int fontSize){
try{
File fontFile = new File(filename);
font = Font.createFont(Font.TRUETYPE_FONT, fontFile);
font.deriveFont(fontSize);
}catch(FontFormatException | IOException e){
}
}

对此:
   public GameFont(String filename, float fontSize){
try{
File fontFile = new File(filename);
font = Font.createFont(Font.TRUETYPE_FONT, fontFile);
font = font.deriveFont(fontSize);
}catch(FontFormatException | IOException e){
e.printStackTrace(); // ****
}
}

此外,从不 曾经像您一样忽略异常!

关于java - 自定义 JLabel 字体太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com