通过Swt Eclipse浏览器收听字段更改
问题描述:
在Java项目中,我使用SWT Eclipse
作为浏览器。通过Swt Eclipse浏览器收听字段更改
我运行这个浏览器并加载页面正常。
页被装载的样子说:
<!DOCTYPE html>
<html>
<body>
Start: <input type="text" id="startTimeField" onchange="myFunction()" placeholder="Type text and press Enter"> ms
<script>
function myFunction() {
document.getElementById('startTimeField').value = new Date().getMilliseconds();
}
</script>
</body>
</html>
我想从Java代码页听元素。
我想实现的示例: 在Java中,按JButton,它应该从页面中找到编号为startTimeField
的按钮,并向它们添加监听器。听众应该倾听改变这个领域的价值。这个怎么做 ?
答
下面是一个带有两个HTML按钮的非常简单的示例。当点击他们会打电话给一个SWT BrowserFunction
,并通过在按钮的ID:
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
browser.setText("<button id='button1' onclick='buttonClicked(this.id)'>Click me</button><button id='button2' onclick='buttonClicked(this.id)'>Click me</button>");
new BrowserFunction(browser, "buttonClicked")
{
@Override
public Object function(Object[] objects)
{
System.out.println("BUTTON CLICK; ID: " + objects[0]);
return null;
}
};
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
看起来你打算混合SWT和Swing/AWT。如果你能避开它,不要走那条路。但是,您可能应该查看[this](http://blog.vogella.com/2009/12/21/javascript-swt/),以了解您正在查找的Java Javascript交互。 – Baz
我想在Java代码中添加监听器来监听SWT在页面中输入的文本更改。在这[问题]中使用JxBrowser做同样的事情(http://*.com/questions/42391142/listen-changes-on-page-using-jxbrowser/42391828#42391828) – ACz
不知道如果没有这个可能修改HTML。 – Baz