2013-02-20 26 views
2

我有一個很長的任務正在運行,我彈出一個模態對話框MainUI.modalDialog.setVisible(true);它有一個ProgressBar。但是我確實發現它阻止了這個過程。如何彈出對話框而不會阻止任何在我的框架中運行的對象?在Java中的ModalDialog阻止

+0

您是否在美國東部時區之外運行您的流程?例如在SwingWorker中? – Kojotak 2013-02-20 10:10:23

+0

簡短的回答是,你沒有。模態對話框從對話框可見的位置阻止代碼的執行。你可以擴展你正在嘗試做什麼 – MadProgrammer 2013-02-20 10:42:54

回答

1

這是模態對話框的行爲。選項是,您不要將其顯示爲模式,或者將其顯示在單獨的線程中。

0

如果不是GUI代碼,您應該在您的框架中運行任何其他線程。你也可以在單獨的GUI線程中運行模式對話框。

+0

你如何在單獨的GUI線程上運行某些東西? Swing是一個單線程環境(你的第一部分答案是正確的) – MadProgrammer 2013-02-20 10:41:51

0

http://en.wikipedia.org/wiki/Modal_window

「在用戶界面設計,模態窗口是要求用戶與它進行交互,他們可以返回到操作父應用程序前一個子窗口,從而防止工作流程上的應用主窗口模態窗口通常稱爲重窗口或模態對話框,因爲窗口通常用於顯示對話框。「

解決方案:不要使用模態窗口。