データベースから初期データを取得するのに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に通知すると思います。 –