Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复启动屏幕的此代码?_Java - Fatal编程技术网

Java 如何修复启动屏幕的此代码?

Java 如何修复启动屏幕的此代码?,java,Java,我正在尝试为一个游戏制作闪屏,这两个都是JFrames。我想启动屏幕打开3秒钟,然后被处置。游戏主要部分的JFrame需要立即创建并显示。我正在使用Thread.sleep()等待3秒钟,但加载页面延迟了3秒钟,而不是游戏。代码如下: new load(); try { Thread.sleep(3000); dispose(); new gameInfo(); } catch (InterruptedException ex) { Logger.getLo

我正在尝试为一个游戏制作闪屏,这两个都是JFrames。我想启动屏幕打开3秒钟,然后被处置。游戏主要部分的JFrame需要立即创建并显示。我正在使用Thread.sleep()等待3秒钟,但加载页面延迟了3秒钟,而不是游戏。代码如下:

new load();
try 
{
    Thread.sleep(3000);
    dispose();
    new gameInfo();
} 
catch (InterruptedException ex) 
{
    Logger.getLogger(home.class.getName()).log(Level.SEVERE, null, ex);
}

您需要在新线程上运行它,因为您现在所做的是冻结主线程,这会影响GUI并使其冻结。因此,您需要在后台等待3000毫秒,唯一简单的方法就是创建一个新线程。这是伪代码

new load();
new Thread(){
    public void run(){
        try {
            Thread.sleep(3000);
            //i think you should call this 2 lines below in main thread
            dispose();
            new gameInfo();
        } catch (InterruptedException ex) {
            Logger.getLogger(home.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
}.start();

这段代码行不通,这只是伪代码。我需要查看整个类,使其能够运行。

我们需要更多的上下文。
dispose
到底做了什么,构建
load
gameInfo
对象的副作用是什么?为什么不使用Java的SplashScreen?
new load();
new Thread(){
    public void run(){
        try {
            Thread.sleep(3000);
            //i think you should call this 2 lines below in main thread
            dispose();
            new gameInfo();
        } catch (InterruptedException ex) {
            Logger.getLogger(home.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
}.start();