啓動應用程序需要5-10秒才能從數據庫檢索初始數據的正確方法是什麼?這是我迄今爲止所得到的,但我不確定沒有更好的方法。我希望GUI和數據庫訪問將位於不同的線程中,以便GUI構建與數據檢索同時發生。啓動Java Swing桌面應用程序的正確方法
public static void main(String[] args) {
final Controller controller = new Controller();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
View frame = new View();
controller.setView(frame);
}
});
Model model = new Model();
controller.setModel(model);
controller.getInitialData();
}
我不確定我是否明白問題所在。您需要設計GUI,以便在完成數據庫訪問時對模型中的更改做出反應。同樣,'JTable'監聽來自'TableModel'的事件,你的整個UI應該監聽來自模型的事件(比如「完成DB訪問」)。 – Darien
在GUI啓動之前,您可以在加載數據時顯示[啓動畫面](http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/splashscreen/)。否則,您也可以啓動GUI,凍結它並在加載數據時顯示一些消息。 – toto2
是的,絕對要在單獨的線程中完成數據庫工作。我會想象你的getInitialData方法體將創建一個SwingWorker並從SwingWorker內部獲取數據本身,然後如上述註釋中所述,在此操作完成時通知GUI。 –