我正在尝试使用绘制方法创建全屏。我希望以粉红色和蓝色背景显示“This is the day”。问题是,当我运行我的程序时,它会显示我在屏幕上用工具栏和应用程序绘制的内容,而不是显示蓝色背景,中间用粉红色显示“今天”。一些代码如下。
public static void main(String args[])
{
DisplayMode dm1 =
new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKNOWN);
RunScreen runProgram = new RunScreen();
runProgram.run(dm1);
}
public void run(DisplayMode dm)
{
getContentPane().setBackground(Color.BLUE);
setForeground(Color.PINK);
setFont(new Font("Arial", Font.PLAIN, 24));
FullScreen s = new FullScreen();
try
{
s.setFullScreen(dm, this);
try
{
Thread.sleep(5000);
}
catch (Exception e)
{
}
}
finally
{
s.restoreScreen();
}
}
@Override
public void paint(Graphics g)
{
g.drawString("This is the day", 200, 200);
}
最佳答案
Thread.sleep(5000);
不要阻塞 EDT(事件调度线程)——发生这种情况时 GUI 将“卡住”。不是调用 Thread.sleep(n) 而是实现 Swing Timer 来重复任务或使用 SwingWorker 来长时间运行任务。请参阅Concurrency in Swing了解更多详情。
关于java - Paint 方法不适用于全屏 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16632768/