SWT按钮上的MouseClick事件在哪里?

Hei*_*nzi 7 java swt button

我知道这听起来像一个非常基本的问题,我觉得很尴尬但是...

如何将鼠标单击处理程序添加到SWT按钮?

我检查了什么:

  • 我可以找到大量关于如何添加鼠标按下,鼠标按下或双击处理程序的示例(通过分配MouseListener).显然,鼠标单击(同一控件上的向下和向上的顺序)与鼠标向下不同.
  • 我理解在泛型控件上可能没有单击处理程序,但是我在Button控件上看到的唯一事件是一个SelectionListener - 可能就是它,但选择听起来更像是"收到焦点"给我而不是"被点击"或者选择,然后用按键调用".
  • 我发现了一个相关的问题,他的回答基本上说你需要自己实现 - 我觉得有点难以置信.

选择在其他语言/框架中通常称为"OnClick"的是什么?或者还有其他我完全错过的东西?

Baz*_*Baz 5

是的,SWT.Selection或者SelectionListener是您正在寻找的:

Button button = new Button(shell, SWT.PUSH);
button.addListener(SWT.Selection, new Listener()
{
    @Override
    public void handleEvent(Event event)
    {
        System.out.println("SWT.Selection");
    }
});
Run Code Online (Sandbox Code Playgroud)

SelectionListener内部添加 a与上面的代码相同。

它可能被称为选择,因为 aButton可以是复选框或单选按钮,具体取决于它的样式。