2011-02-02 13 views
5

私はWebページを読み込むJava Swingアプリケーションを持っています。ユーザーのインターネット接続によっては、Webページの読み込みに時間がかかることがあります。Java Swing:モーダルロード画面ですか?

ページが読み込まれるまで、このフレームをブロックします。

答えて

5

最も簡単なオプションは、モーダルダイアログをポップアップ表示することです:

JDialog modalDialog = new JDialog(frame, "Busy", ModalityType.DOCUMENT_MODAL); 
modalDialog.setSize(200, 150); 
modalDialog.setLocationRelativeTo(frame); 
modalDialog.setVisible(true); 

あなたはそれにプログレスバーを配置することがあります。

0

可能です... 解決策を見つけました。

私もその問題がありました。

another answerで提案されているように、モーダルダイアログを作成すると、ユーザーだけがそれを閉じることができます。
ロードが終了したときに自分自身を廃棄することができる場合にのみ役に立ちます。

[UPDATE]

は、ここに私のダイアログクラス

public final class Loading extends javax.swing.JDialog { 

    /* 
    * Creates new form Loading 
    * @param parent 
    * @param modal 
    */ 
    public Loading(java.awt.Frame parent,boolean modal) { 
     super(parent, modal); 
     initComponents(); 
    } 

    private void formWindowActivated(java.awt.event.WindowEvent evt) {          
     //Code to execute while loading 
     this.dispose(); 
    }              
} 

であり、ここで、あなたはこのようにそれを呼び出します。

Loading l = new Loading(this/*In case you class is a frame, null otherwise*/, true); 
l.setVisible(true); 

ローディングコードを実行すると、親クラスのコードが破棄され続けます。

+0

ダイアログのdisposeメソッドを呼び出すコールバックを読み込みタスクに提供できます。 – Daniel

関連する問題