我用Browser浏览网页,并想得到鼠标在Browser上的坐标,我是这样写的:
Browser browser;
final Text text = new Text(shell, SWT.SHADOW_IN);
browser.addMouseMoveListener(new MouseMoveListener(){
public void mouseMove(MouseEvent e) {
Integer y=new Integer(e.x);  /*将x坐标转换为Integer类型的对象*/
                text.setText(y.toString()); 
}
});
但鼠标移上去的时候,text里没反应,而监听别的控件就行,这是怎么回事,难道Browser不支持这东西?

解决方案 »

  1.   

    Browser控件和Browser显示的网页不是一会事。鼠标在网页那个地方移动是监听不到的。
      

  2.   

    把这个问题结一下.
    1.直接是监听不到的.根本不是一套事件体系下的东西.
    2.browser有个execute(String)方法 用来执行js脚本.
    3.SWT中可以监听一些browser事件,其中包括StatusTextChange.所以,写个js脚本监听鼠标.利用JS改变StatusText.例如:>>>&&:{"px":x,"py":y} (利用JSON,还可传简单对象)browser.addStatusTextListener(new StatusTextListener(){
         public void changed(StatusTextEvent event) {
              int start = event.text.indexOf(">>>&&:");
              if(start > 0){
                    String json = event.text.substring(start);
                    //json --> Ponit
              }
          }        
    });性能应该不好.