我试图在JFrame上显示带有自定义字体的短语,但我最终只得到没有字体的文本。当我编译以下代码时:
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.Font.*;
public class JavaPractice{
public static void main(String[]args){
JFrame frame = new JFrame("Java Practice!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(label);
frame.pack();
frame.getContentPane().setBackground(Color.decode("#101010"));
frame.setSize(720,480);
frame.setResizable(false);
frame.setVisible(true);
JLabel label = new JLabel("Press Enter To Continue");
Font font = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("PixelFont.ttf"));
label.setFont(font.deriveFont(Font.BOLD, 12f));
}
}
我从编译器得到反馈,说getClass()不是非静态方法,不能从静态上下文中引用。
它还说它找不到符号frame.add(label);
请在答案中具体说明,因为我不是那么先进的Java。
答案 0 :(得分:2)
我已根据我们在评论中指出的内容更改了您的代码。你的字体文件在哪里?
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.Font.*;
public class JavaPractice{
public static void main(String[]args){
JFrame frame = new JFrame("Java Practice!");
JLabel label = new JLabel("Press Enter To Continue");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(label);
frame.pack();
frame.getContentPane().setBackground(Color.decode("#101010"));
frame.setSize(720,480);
frame.setResizable(false);
frame.setVisible(true);
try{
Font font = Font.createFont(Font.TRUETYPE_FONT, JavaPractice.class.getResourceAsStream("PixelFont.ttf"));
label.setFont(font.deriveFont(Font.BOLD, 12f));
}
catch(Exception e){}
}
}