在我的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