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

Javascript 通过Swt Eclipse浏览器侦听字段的更改,javascript,java,html,eclipse,swt,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> functio

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

起点:ms
函数myFunction(){
document.getElementById('startTimeField')。value=new Date().getmillizes();
}
我想在Java代码中侦听页面中的元素

我想要实现的示例:
在Java中,按下JButton,它会从页面中找到id为
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();
}
publicstaticvoidmain(字符串[]args)
{
显示=新显示();
外壳=新外壳(显示);
setLayout(新的FillLayout());
浏览器=新浏览器(shell,SWT.NONE);
setText(“单击我的鼠标”);
新浏览器功能(浏览器,“按钮点击”)
{
@凌驾
公共对象函数(对象[]对象)
{
System.out.println(“按钮单击;ID:+objects[0]);
返回null;
}
};
shell.pack();
shell.open();
而(!shell.isDisposed())
{
如果(!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}

下面是一个非常简单的示例,有两个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();
}
publicstaticvoidmain(字符串[]args)
{
显示=新显示();
外壳=新外壳(显示);
setLayout(新的FillLayout());
浏览器=新浏览器(shell,SWT.NONE);
setText(“单击我的鼠标”);
新浏览器功能(浏览器,“按钮点击”)
{
@凌驾
公共对象函数(对象[]对象)
{
System.out.println(“按钮单击;ID:+objects[0]);
返回null;
}
};
shell.pack();
shell.open();
而(!shell.isDisposed())
{
如果(!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}

看起来您计划混合使用SWT和Swing/AWT。如果你能避开那条路,就不要走那条路。不过,您可能应该看看您正在寻找的JavaJavascript交互,我希望在Java代码中添加侦听器,以侦听SWT在页面中输入的文本的更改。在本例中使用JxBrowser的方法与使用JxBrowser的方法相同,但不确定在不修改HTML的情况下是否可行。因此,您建议怎么做?在HTML中添加侦听器,并从侦听器中调用Java浏览器函数。看起来您计划混合使用SWT和Swing/AWT。如果你能避开那条路,就不要走那条路。不过,您可能应该看看您正在寻找的JavaJavascript交互,我希望在Java代码中添加侦听器,以侦听SWT在页面中输入的文本的更改。在本例中使用JxBrowser的方法与使用JxBrowser的方法相同,但不确定在不修改HTML的情况下是否可行。因此,您建议怎么做?在HTML中添加侦听器,并从侦听器中调用Java browser函数。