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