![](/img/trans.png)
[英]Is there anything like Java's AtomicStampedReference in C++?
[英]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.