2013-05-16 164 views
1

是否可以爲Spinner上/下按鈕添加點擊監聽器? 我需要這種行爲,因爲當我添加Modify或Selection偵聽器時,我手動輸入到Spinner字段的所有更改也都被提交,這對我來說是不可接受的。微調器,加/減箭頭按鈕監聽器

回答

3

您可以收聽SWT.Verify並檢查EventkeyCode

按鈕按下此值將爲0。因此,當keyCode不等於0時,您可以告知Spinner忽略事件。

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(); 
} 
+0

謝謝您的回答。是否可以在VerifyListener和ModifyListener之間共享事件數據? – Steve

+0

@Steve你是什麼意思? – Baz

+0

我的意思是:通過向上/向下微調按鈕改變數值的可能性,以及在輸入或焦點丟失的情況下在文本字段中手動改變數值的能力。 – Steve