[英]Understanding the scope of code evoked in the Java Event Dispatch Thread
我試圖了解將從事件調度線程(EDT)管理哪些事件。
讓我們假設一些簡單的代碼,簡單的代碼簡單地打開JOptionPane,等待用戶的響應,然后將其關閉。 現在,與此對象相關的哪些事件已放入EDT? 是嗎:a)僅創建對象(JOptionPane)。 b)在對象的生存期內所有與對象相關的事件。 C)其他(請說明)。
謝謝,
艾略特
見下文:
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run(){
JOptionPane.showMessageDialog(myComponent, msg);
}
});
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
據我所記得,以下所有“事件”都將在EDT中執行:
SwingUtilities.invokeAndWait()
或SwingUtilities.invokeLater()
調用的任何代碼。 所有JOptionPane
對話框都是模式對話框:它們將用戶生成的輸入事件阻止到其他窗口,但是EventQueue
繼續處理所有窗口的事件。 在此DialogTest
,動畫在JOptionPane.showMessageDialog()
等待輸入時繼續。 有一個相關的討論在這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.