我有一個簡單的groovy腳本,它的主執行線程需要向用戶顯示一些對話框。JOptionPane.showMessageDialog和swing.utils.invokeAndWait的(event-dispatch)線程安全用法是什麼?
我的揮杆知識是有限的和生鏽的,但我記得有關需要小心保持圖形用戶界面的東西在事件調度線程(EDT)的知識。
如果我只是從我的主線調用靜態JOptionPane.showMessageDialog
方法,我是否認爲這會違反在GUI上保留GUI東西的正確做法?
我是否應該使用swing.utils.invokeAndWait方法,如下面的示例代碼所示?
void showHelloThereDialog()
throws Exception {
Runnable showModalDialog = new
Runnable() {
public void run() {
JOptionPane.showMessageDialog(
myMainFrame, "Hello There");
}
};
SwingUtilities.invokeAndWait
(showModalDialog);
}
現在上面並沒有做任何事情來比從後invokeAndWait完成可用消息對話框以外的東西做的值。
大概事實上,groovy'閉包'實現Runnable將使得代碼比上面更簡單。
是否需要invokeAndWait?如果是這樣的話,請給出一個正確實現的例子,用groovy來得到類似confirmDialog的結果?
如果您正在編寫Swing代碼並使用Groovy,則應該查看Griffon。 – 2011-03-31 08:36:30
@Don感謝您的建議,我知道Griffon,這絕對有趣。另一方面,它比我現在需要的重量要重,而且我也希望在依靠這麼多的「魔術」之前,更好地理解螺栓和螺栓。我真正意識到的唯一文檔是MEAP「Griffon in Action」http://www.manning.com/almiray/。你知道它是否有用(或者其他來源是否有用)? – 2011-03-31 12:24:01