首先,这是我的代码:
public static Font kingThing;
public static void main(String[] args) throws IOException {
try {
/** Substance look and feel */
UIManager.setLookAndFeel(new NimbusLookAndFeel());
} catch (UnsupportedLookAndFeelException ulafe) {
Loader loader = new Loader();
loader.doFrame();
}
Start Loader = new Start();
Loader.setVisible(true);
DirectBufferHelper.oggstream().connect();
}
public Start() throws IOException {
/** The name of the frame */
super("Client Launcher");
try {
getContentPane().setBackground(Color.BLACK);
setBackground(Color.BLACK);
/** Creates and adds the main configurations of the frame */
BufferedImage image39 = ImageIO.read(getClass().getResourceAsStream("\\jaggl\\igs\\39.png"));
this.setIconImage(image39);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(new Dimension(launcherWidth, launcherHeight));
this.setLocationRelativeTo(null);
this.setResizable(false);
getContentPane().setLayout(null);
paintAll();
} catch (IOException e) {
System.out.println(e);
}
try {
InputStream in = getClass().getResourceAsStream("Kingthings Petrock.ttf");
kingThing = Font.createFont(0, in);
} catch (Throwable e) {
e.printStackTrace();
}
}
&安培;
/**
* Loaders main page Username Display
*/
loggedInAsDisplay = new JLabel(getloggedInAs());
loggedInAsDisplay.setBounds(305, 68, 200, 20);
loggedInAsDisplay.setForeground(Color.LIGHT_GRAY);
loggedInAsDisplay.setFont(kingThing);
getContentPane().add(loggedInAsDisplay);
现在,当我启动框架时,文本显示为一个点。用户名设置为玩家用户名。例如,我登录了我的测试帐户&我的主要帐户。 &安培;以下显示:
如何让它显示实际文本而不仅仅是一个点。在我添加字体之前,它正确显示了文本。
答案 0 :(得分:4)
你所创造的是一个点大小为1的字体,所以你必须得到一个更大的点大小的字体,而不是尝试:
kingThing = Font.createFont(Font.TRUETYPE_FONT, in).deriveFont(36f);
Here the actual docs that specify this, and the text:
<强>的createFont 强>
使用指定的字体类型和输入数据返回一个新的Font。创建新字体时,点大小为1,样式为PLAIN。然后,可以将此基本字体与此类中的deriveFont方法一起使用,以派生具有不同大小,样式,变换和字体特征的新Font对象。 Ť