在SWT中,对于MouseListener接口,可用的方法是mouseUp()
,mouseDown()
和mouseDoubleClick()
如何根据用户点击触发事件?
我们可以通过mouseUp()
和mouseDown()
的结合来实现这一点,但是在SWT中没有像mouseClick()
方法这样的简单解决方案吗?
感谢。
答案 0 :(得分:2)
如何定义鼠标单击事件?鼠标按下然后鼠标向上,没有鼠标离开控件的边界(否则它将是拖动开始),对吧?根据该定义,鼠标单击事件不能与单个点相关联,而是与区域(1)或控件(2)相关联。第一种情况不适合通用SWT事件,它只有一个位置(x和y),你还需要额外的代码来检查点击区域是否在你的图像中。在第二种情况下,只能使用控件(而不是位置)定义鼠标单击,该事件对您来说无用。
当您实施自己的单击检测时,您可以触发您喜欢的控件上的任何事件,甚至是那些未由SWT定义的事件。
答案 1 :(得分:0)
要对按钮上的鼠标单击事件作出反应,您可以使用SelectionListener,这样的事情可以解决这个问题:
button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
super.widgetSelected(e);
System.out.println("click!");
}
});