簡體   English   中英

Java C / S應用程序預加載器(如Ajax)

[英]Java C/S Application preloader (like Ajax)

我想在Java桌面應用程序(我使用Swing)中實現“等待”預加載消息,就像Ajax / Flash開發人員在Web應用程序中使用的預加載器一樣。

我的應用程序使用客戶機/服務器體系結構,由於服務器的響應時間,從一個窗口移到另一個窗口可能會有一些延遲,但是在加載所有內容之前,用戶應該無法執行任何操作

最佳做法是什么? 我有兩個想法,但我認為應該有更好的方法來解決這個問題:

1個想法)阻塞事件分派器線程(甚至可能嗎?)

另一種想法)隱藏整個JFrame,直到與服務器的消息交換完成並且內容准備就緒為止,顯示另一個“等待” JFrame,但是我不太喜歡這種解決方案,因為主JFrame在用戶使用期間會不斷地閃爍相互作用

編輯:由於一些提示我弄清楚了,但我無法將答案提供給任何人(沒有人實際回答,我只有評論!),我應該投票刪除問題嗎?

我使用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);                               
        }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM