Eclipse

VerifyListener로 숫자만 입력받는 방법

_침묵_ 2007. 3. 31. 23:49
VerifyListener을 이용하면 사용자가 입력하는 순간에 입력허용여부를 체크할 수 있다.
JDK 1.4 부터 추가된 matches 메소느를 사용하면 여러가지 패턴을 사용가능하다.
JDK 1.3에서 사용하는 방법도 있지만, 이클립스가 1.4 이상에서만 돌아가기 때문에 의미는 없으리라 생각된다.
 
 
Text numericText = new Text(parent, SWT.NONE);

numericText.addVerifyListener(

     new VerifyListener() {
          public void verifyText(VerifyEvent e) {
                e.doit = e.text.matches("[\\-0-9]*");
          }
});

 

소스를 보면 Text 개체를 만들고, Text개체에 Listener를 등록하면 된다. 입력할때마다 verifyText 이벤트가 발생하면서 해당 메소드로 입력허용하겠냐고 물어보게 된다.

이때 e.doit = false를 주면 입력이 안되게 되고, 반대로 e.doit = true가 되면 입력이 되게 된다.