我用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不支持这东西?
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.直接是监听不到的.根本不是一套事件体系下的东西.
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
}
}
});性能应该不好.