如果用戶還沒有關閉第一個,我想停止顯示第二個(或第n個)showConfirmDialog,但我找不到這樣做的方法。停止排隊後續的JOptionPane
回答
JOptionPane.showConfirmDialog
被阻止。從調用檢查返回值,以確定是否應顯示一個對話框,像這樣:
int result = JOptionPane.showConfirmDialog(frame, "First question?");
if (result != JOptionPane.CANCEL_OPTION) {
int nextResult = JOptionPane.showConfirmDialog(frame, "Next question?");
...
}
如果你有一份問題清單,要求您可以使用一個循環,並打破了用戶時解除對話框:
for (String question : questions) {
int result = JOptionPane.showConfirmDialog(frame, question);
if (result == JOptionPane.CANCEL_OPTION)
break;
// handle (yes/no) the response
....
}
對不起,我沒有解釋得很清楚。我有一個正在偵聽套接字上的某個文本字符串的可運行內部類。如果到達,則彈出JOptionPane.showConfirmDialog。這很好。除非發送該字符串的遠程對等方在另一端取消,然後決定再次發送該字符串,否則接收方客戶機將獲得另一個顯示的ConfirmDialog,以及我希望不允許的第二個或隨後的對話框。 – user1410059 2012-07-05 15:48:15
我仍然認爲@ dacwe的答案適合您的問題。無論如何,也許你應該做套接字通信。通過添加某種ack消息更加健壯,甚至發送消息以顯示已取消的消息。 – 2012-07-05 16:13:10
我已經有這樣的代碼 - 它不工作。因爲接收客戶端只是讓對話框掛在屏幕上 - 我想確保另一個不會被接受 - 我不在乎接收客戶端是否從未點擊過YE或不,我只是不要另建一個對話框。 – user1410059 2012-07-05 16:56:58
我建議直接使用JDialog(JOptionPane只是創建JDialog的快捷方式)。您可以使用WindowListener/windowClosing事件來確定您是否應該顯示下一個JOptionPane
對不起人們 - 我的錯誤 - 在if子句中有一個錯誤的布爾值,它意味着阻止後續的消息對話。得到它排序,並感謝這一次。 – user1410059 2012-07-05 22:37:13
如果我正確理解您的問題(和註釋),您將有一定的Thread
,它們監聽套接字上的文本,並在接收到文本時顯示新文字的新對話框。
我通過顯示一個包含JTextArea
的對話框解決了類似的問題。當我的Thread
收到新文本時,我將文本附加到JTextArea
,並在JTextArea
未顯示時顯示。
當用戶解除對話框時,我清除了JTextArea
。
小方面說明:您最好更新您的問題,並在評論中添加額外信息,因爲這些評論可以讓您更清楚地解決您要解決的問題。
- 1. 停止動畫排隊
- 2. 停止jQuery的排隊事件
- 3. 從排隊停止滾動功能
- 4. Windows Server 2003 NLB停止排隊通知
- 5. 停止排隊發送緩存標題
- 6. 如何停止Spring @ Scheduled排隊工作
- 7. 如果已經入隊,請停止Hangfire作業排隊
- 8. 停止代碼X秒,然後繼續
- 9. X連續失敗後停止pytest
- 10. .NET調試在停止後繼續
- 11. 如何停止JOptionPane選擇最後一種情況?
- 12. jquery停止排隊而動畫沒有完成懸停
- 13. Postfix連續停止
- 14. 隊列,延遲,停止隊列
- 15. jquery懸停動畫排隊
- 16. 如何停止的jQuery排隊動畫效果
- 17. 如何停止控件上的操作排隊?
- 18. FreeRTOS在調度程序啓動前(或停止後)爲IO排隊
- 19. 停止連續表生成
- 20. C#停止和繼續
- 21. 停止連續滾動smoothdivScroll
- 22. 停止並繼續SKAction
- 23. 停止繼續ASP.NET MVC ActionFilter
- 24. 如何停止ActiveMQ的'隊列'來停止接收郵件
- 25. jQuery - 防止從快速鼠標移動排隊懸停功能
- 26. 停止JavaScript函數排隊,一次只允許一個函數
- 27. Javascript:如何停止點擊事件排隊?
- 28. wcf服務long httpwebrequest等待導致後續請求排隊
- 29. 停止已安排的nstimer
- 30. JQuery的preventDefault()方法是停止後續功能
所以你說多個確認對話框一次顯示?你能給我們一個(簡短的)代碼示例來展示你如何給他們打電話嗎? – 2012-07-05 14:46:39