在我的Java程序中,我有這將啓動兩個線程主類:更改URL(?從其他線程)在Java SWT瀏覽器
Browserwindow
(JFrame
與SWT browser
)Pagecyclecontroller
(類週期通過頁面列表)
我的主類的通知時Pagecyclecontroller
更新其當前的URL,但我不能告訴我Browserwindow
改變其頁面。
我第一次猜測是公開的方法(在Browserwindow
),setURL
,this.browser.setURL(..);
但它沒有工作。
我不是很farmiliar與SWT Browser
,它似乎環路其線程在本節:
...
shell.open();
while (!shell.isDisposed() && frame.isVisible()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
frame.dispose();
如果我更改任何此類(如增加browser.setURL(...)
)沒有什麼作品在所有... 和在哪裏我什麼時候更改瀏覽器本身的URL?其他班級如何改變它?
開始在UI線程之前?或者在你的UI級別的某個地方。還必須有某種「聽衆」,您可以在其中聽「開放」或「開始」事件。在那裏你也可以改變網址。我建議閱讀一些SWT Howto指南開始。谷歌將幫助你 – zip
我實現了Pagecycles和Browserwindow作爲Observer,在我的窗口中調用「update」工作,直到我嘗試更改URL ..「org.eclipse.swt.SWTException:無效的線程訪問」 – user2078872
看來你主要使用SWT,那麼爲什麼'JFrame'? – Baz