2012-04-03 22 views
0

我正在swt中構建一個應用程序,我也有一個線程正在運行,它會輪詢數據庫的任何更改(直接由數據庫或其他應用程序創建)。如何在SWT中激發自定義事件?

我能夠拿起變化,但我現在需要告訴我的界面刷新,我試圖直接從線程調用對象刷新方法(我做),但我得到一個SWTException "Invalid Thread Access"

有沒有辦法在線程中創建自己的事件,然後可以在找到數據庫更改後手動觸發,然後由需要刷新的類拾取。

我已經看過SWT事件,但我只能似乎找到其連接到小部件,只能通過小部件本身被解僱的...

謝謝!

回答

2

您需要從用戶界面線程更新用戶界面。要做到這一點

的方法之一是使用對org.eclipse.swt.widgets.Display類的這些方法之一:

Display.getDefault().syncExec(new Runnable() { ... }); 

或:

Display.getDefault().asyncExec(new Runnable() { ... }); 
相關問題