Java 单击eclipse按钮

Java 单击eclipse按钮,java,eclipse,button,onclick,swt,Java,Eclipse,Button,Onclick,Swt,我用 我的问题是event.widget==button的值在我松开按钮后发生变化。怎样做一次点击?我想在“单击并保持”值更改时进行更改。目前它发生在我按下按钮之后 如果要侦听鼠标按下事件,请将侦听器添加到SWT.MouseDown而不是SWT.Selection: private void makeButtonsListen(Listener listener) { for (Button button : aButtons) { button.addListener(

我用


我的问题是
event.widget==button
的值在我松开按钮后发生变化。怎样做一次点击?我想在“单击并保持”值更改时进行更改。目前它发生在我按下按钮之后

如果要侦听鼠标按下事件,请将侦听器添加到
SWT.MouseDown
而不是
SWT.Selection

private void makeButtonsListen(Listener listener) {
    for (Button button : aButtons) {
        button.addListener(SWT.MouseDown, listener);
    }
}

+1; 出于好奇:你为什么不先发布答案,然后用评论写下你的解决方案,直到OP发现答案有用后才给出答案?@hiergiltdiestfu,因为我不确定我是否理解这个问题。我的评论是基于一种预感。谢谢你的回答——很公平。我只是看到人们因为在评论中发布与解决方案一致的答案而受到攻击。如果评论中的解决方案能产生这样的效果,那么就不鼓励按预期使用答案系统:)在这种情况下,也许要求澄清会更好——或者只是把你的直觉作为答案发布出来,如果它被证明是一个误解,就再次删除它。不管它值多少钱,我不想告诉你如何使用,所以,我很高兴我终于得到了这样一个案例的解释。你好,继续帮助:)哦,如果你想让我整理一下我对你答案的评论,请告诉我。
makeButtonsListen(new Listener() {

        @Override
        public void handleEvent(Event event) {
            handleButtonEvent(event);
        }
    });

private void makeButtonsListen(Listener listener) {
    for (Button button : aButtons) {
        button.addListener(SWT.Selection, listener);
    }
}
private void makeButtonsListen(Listener listener) {
    for (Button button : aButtons) {
        button.addListener(SWT.MouseDown, listener);
    }
}