通过Swt Eclipse浏览器监听字段的更改

时间:2017-02-22 14:38:21

标签: javascript java html eclipse swt

在Java项目中,我使用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的按钮并向其添加侦听器。监听器应该监听此字段的更改值。这该怎么做 ?

1 个答案:

答案 0 :(得分:2)

这是一个带有两个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();
}