1

Ajax/Flash 開発者が Web アプリケーションで使用するプリローダーのように、Java デスクトップ アプリケーション (私は Swing を使用) に「待機」プリロード メッセージを実装したいと考えています。

私のアプリケーションはクライアント/サーバー アーキテクチャを使用しており、サーバーの応答時間のために、ウィンドウからウィンドウへ移動するときに遅延が発生する可能性がありますが、ユーザーはすべてのコンテンツが読み込まれるまで何もできません

これを行うためのベストプラクティスは何ですか? 私には2つのアイデアがありましたが、これを処理するためのより良い方法があるはずです:

1 つのアイデア) イベント ディスパッチャー スレッドのブロック (それは可能ですか?)

別のアイデア) サーバーとのメッセージ交換が完了し、コンテンツの準備が整うまで JFrame 全体を非表示にし、別の「待機中」の JFrame を表示しますが、ユーザーの操作中にメインの JFrame が点滅し続けるため、このソリューションはあまり好きではありません交流

編集:いくつかのヒントのおかげで私はそれを理解しましたが、誰にも答えられません(実際に答えた人はいません、コメントしかありません!)、質問を削除するために投票する必要がありますか?

4

1 に答える 1

1

JDialogを使用して問題を解決し、setVisible(true / false)で遊んで、setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);を使用して、ユーザーがXボタンを押してダイアログを閉じる可能性を拒否しました。

public class PreloaderDialog extends JDialog {              

        publicPreloaderDialog() {

                initialize();
        }

        public final void initialize() {

                JLabel waittext = new JLabel("Wait, please");    
                add(waittext);

                setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
                setModalityType(ModalityType.APPLICATION_MODAL);

                setTitle("Loading in progress");

                setLocationRelativeTo(null);
                setSize(300, 120);
        }

        public void hide() {

           setVisible(false);                               
        }

        public void show() {                                       

            setVisible(true);                               
        }

}
于 2012-09-09T19:42:52.257 に答える