启动应用程序需要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。 –