我有一个JFrame,立即建立数据库连接。此连接最多需要2秒,同时我想显示一条消息(或另一个JFrame)。建立连接后,消息应该消失。
我有一个坏榜样,有没有人有更好的主意?
public class Main extends JFrame {
View v = new View();
static JFrame loader = new JFrame();
static JLabel loading = new JLabel("Loading");
public Main() {
this.add(v);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
this.setBounds(100, 50, 800, 500);
loader.setBounds(500, 300, 100, 100);
loader.setVisible(true);
loader.add(loading);
}
public static void main(String[] args) {
Main m = new Main();
if (DB.INSTANCE.connect()) {
m.setVisible(true);
loader.setVisible(false);
} else {
loading.setText("DB ERROR");
}
}
}
答案 0 :(得分:1)
您应该查看SwingWorker并在后台执行此操作。但首先,您必须了解Threads and Swing。
答案 1 :(得分:1)
如果任务是创建一个启动对话框(在完成一些初始化工作时应用程序启动时显示的框架),这里有一个关于如何使用Swing的SplashScreen执行它的教程:http://docs.oracle.com/javase/tutorial/uiswing/misc/splashscreen.html。