2012-01-10 9 views
0

データベース接続がすぐに確立される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

*悪い例がありますが、誰かがより良いアイデアを持っていますか?*悪い例ではなく[SSCCE](http://sscce.org/)を投稿してください。 –

+0

どこに問題がありますか?私は私の問題を説明し、可能な解決策を掲示しました。 –

答えて

1

タスクはスプラッシュダイアログ(いくつかの初期化作業が行われている間、アプリケーションの起動時に示されたフレーム)を作成する場合は、ここではSwingのスプラッシュ画面でそれを行う方法についてのチュートリアルです:http://docs.oracle.com/javase/tutorial/uiswing/misc/splashscreen.htmlが。

1

あなたはSwingWorkerを見て、それをバックグラウンドで行ってください。しかしまず第一に、あなたはThreads and Swingを理解する必要があります。