2012-01-11 136 views
4

在SWT中,对接口MouseListener,可用的方法是mouseUp()mouseDown()mouseDoubleClick()在SWT中触发鼠标事件?

如何开火根据用户点击的事件?

我们可以通过mouseUp()mouseDown()一起做,但不存在像SWT mouseClick()方法任何平凡解?

谢谢。

+1

什么样的对象?只是一个“复合”? (大部分的本地包装类型都有SelectionListener来实现这一点,否则鼠标向下和鼠标移动是明确的。“点击”less so。“ – 2012-01-12 03:41:41

+0

我正在使用GC(GraphicsContext)绘制图像如何在用户单击时触发事件在图像上? – nik7 2012-01-12 05:34:41

+0

你写了“_如何根据用户点击来触发一个事件?_”你是什么意思? SWT监听器_listens_用于显示事件...... – 2012-01-13 07:57:47

回答

1

如何定义鼠标单击事件?鼠标放下鼠标,然后鼠标不离开控制界限(否则它将是拖动开始),对吧?通过该定义,鼠标点击事件不能与单个点关联,而与区域(1)或控件(2)关联。第一种情况不适合通用的SWT事件,它只有一个位置(x和y),并且您仍然需要额外的代码来检查点击区域是否在图像内。在第二种情况下,鼠标点击只能使用控件定义(并且没有位置),这个事件对你来说是没用的。

当您已经实现了自己的单击检测功能时,您可以在您喜欢的控件上触发任何事件,即使那些未由SWT定义的事件。

+0

我没有看到mouseClick()事件无用的上下文。你能有更多的解释吗? – nik7 2012-01-12 18:22:34

+0

@ynwa更新了我的答案。这只是理论上的,并不会改变SWT中没有MouseClick事件的事实:) – 2012-01-13 06:42:35

0

要上一个按钮,你可以使用SelectionListener中鼠标点击事件作出反应,这样的事情应该做的伎俩:

button.addSelectionListener(new SelectionAdapter() { 
     @Override 
     public void widgetSelected(SelectionEvent e) { 
      super.widgetSelected(e); 
      System.out.println("click!"); 
     } 
    });