1

是否可以为 Spinner 上/下按钮添加点击监听器?我需要这种行为,因为当我添加 Modify 或 Selection 侦听器时,我手动输入到 Spinner 字段的所有更改也会被提交,这对我来说是不可接受的。

4

1 回答 1

3

您可以收听并SWT.Verify检查keyCode.Event

该值将0用于按钮按下。因此,当不等于时,您可以告诉Spinner忽略事件。keyCode0

public static void main(String[] args)
{
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());

    final Spinner spinner = new Spinner(shell, SWT.NONE);
    spinner.setMaximum(100);
    spinner.setMinimum(0);
    spinner.setIncrement(10);

    spinner.addListener(SWT.Verify, new Listener()
    {
        @Override
        public void handleEvent(Event arg0)
        {
            if(arg0.keyCode != 0)
            {
                System.out.println("Value edited");
                arg0.doit = false;
            }
            else
            {
                System.out.println("Button pressed");
            }
        }
    });

    shell.pack();
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }
    display.dispose();
}
于 2013-05-16T19:21:12.037 回答