2014-11-13 3 views
1

프로젝트에 많은 모듈이 있습니다. 모든 모듈에는 텍스트 상자가 있습니다.SWT 텍스트의 문자열 길이를 확인하십시오.

입력 (알파벳)의 유효성을 검사하고 싶습니다. 이를 위해 저는 공통된 방법을 써야합니다.

몇 가지 예가 필요합니다.

미리 감사드립니다.

답변

3

TextSWT.Verify을 청취 한 다음 상태를 확인하십시오. 주어진 입력을 막으려면 e.doit = false을 실행하십시오. 그냥 작은 노트

public static void main(String[] args) 
{ 
    Display display = new Display(); 
    Shell shell = new Shell(); 
    shell.setText("StackOverflow"); 
    shell.setLayout(new GridLayout(1, false)); 

    final Text text = new Text(shell, SWT.BORDER); 

    text.addListener(SWT.Verify, new Listener() 
    { 
     @Override 
     public void handleEvent(Event e) 
     { 
      String oldS = text.getText(); 
      String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end); 

      if(newS.length() > 10) 
       e.doit = false; 
     } 
    }); 

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

    while (!shell.isDisposed()) 
    { 
     if (!display.readAndDispatch()) 
     { 
      display.sleep(); 
     } 
    } 
    display.dispose(); 
} 
+1

: 당신이 다음 SWT.Modify' 충분'을 듣고, 입력을 방지하기 위해 필요하지 않은 경우 다음

Text에서 최대 10 개 문자를 허용하는 예입니다. 이벤트는 텍스트가 변경된 후에 전송됩니다. –

+0

고맙다 .. 그 좋은 일하는 k. – afu

+0

입력란이 10 자 이상인 msg 상자를 표시하려고하면 msg 상자가 표시됩니다. 문자열 oldS = textL.getText(); \t \t \t \t 문자열 newS = oldS.substring (0, e.start) + e.text + oldS.substring (e.end); \t \t \t \t 경우 (newS.length()> 길이) \t \t \t \t \t e.doit = ​​TRUE; \t \t \t \t MessageBox msg1 = 새 MessageBox (셸, SWT.ICON_WARNING); \t \t \t \t msg1.setMessage ("유효한 문자열 입력"); \t \t \t \t msg1.open(); 위의 코드는 msg 상자를 표시하면서 각각의 모든 입력 문자를 입력합니다. 이것을 위해 무엇을 바꿀 것인가? – afu

관련 문제