java - Paint 方法不适用于全屏 - Java

标签 java swing screen fullscreen paint

我正在尝试使用绘制方法创建全屏。我希望以粉红色和蓝色背景显示“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/

相关文章:

java - 使用 Java 的 PC 到 PC 通信

java - 尝试在 Java 中实现 MVC 模式,但没有显示 JFrame,即使我的应用程序是 "running"

java - JTextPane 适合底层 JPanel 和 JFrame

assembly - 执行tasm程序时更改dosbox控制台的背景颜色

Java:查找 BST 中未找到的节点的深度

java - 存储多个比较器的类

java - Spring Boot RequestMapping 删除不起作用

java - 如何实现InternalFrameListener?

swift - 调整节点大小以适应 iPad Pro 屏幕

android - 是否所有 10 英寸安卓平板电脑都被识别为 xlarge?