在添加paint方法之前,后台工作正常,我假设paint方法在运行时覆盖了setBackground和setForeground方法,但我不知道如何解决这个问题。
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Afterworld extends JFrame{
public static void main(String[] args){
DisplayMode dm = new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKNOWN);
Afterworld game = new Afterworld();
game.run(dm);
}
public void run(DisplayMode dm){
setBackground(Color.PINK);
setForeground(Color.WHITE);
setFont(new Font("Arial", Font.PLAIN, 24));
Screen screen = new Screen();
try{
screen.setFullScreen(dm, this);
try{
Thread.sleep(5000);
}catch(Exception ex){}
}finally{
screen.restoreScreen();
}
}
public void paint(Graphics g){
g.drawString("test", 200, 200);
}
}
答案 0 :(得分:1)
您应该更改paint
方法:
public void paint(Graphics g){
super.paint(g);
g.drawString("test", 200, 200);
}
对super.paint(g);
的调用执行超类中的任何代码。这正是在您添加paint
方法之前绘制背景的代码。
您可以详细了解如何访问超类'成员http://docs.oracle.com/javase/tutorial/java/IandI/super.html