2012-11-12 1 views
8

preventNewLines 플래그가 설정된 경우 Enter 키를 누른 후 TextViewer가 줄 바꿈을하지 않게해야합니다. 내가 잘못 뭐하는 거지 ...Enter 키를 누른 후 StyledText에서 새 줄을 방지하는 방법

TextViewer myTextViewer = new TextViewer (myGroup, SWT.V_SCROLL 
              | SWT.FULL_SELECTION 
              | SWT.BORDER | SWT.WRAP); 
myTextViewer.setDocument(new Document(myText)); 
StyledText myStyledText = myTextViewer.getTextWidget(); 

myStyledText.addTraverseListener(new TraverseListener() { 
    @Override 
    public void keyTraversed(TraverseEvent e) { 
     if (e.detail == SWT.TRAVERSE_RETURN) { 
      if (preventNewLines) 
       e.doit = false; 
     } 
    } 
}); 

하지만 어쨌든 새로운 라인을 만드는 :

나는이 코드 조각이? 아무도 올바른 코드를 게시하지 못하게 할 수 있습니까?

편집

: OK, 나는 운에 의해 답을 발견했습니다, 나는 그것을 다른, 어쩌면 ...

myStyledText.addVerifyKeyListener(new VerifyKeyListener() { 

    @Override 
    public void verifyKey(VerifyEvent e) { 
     if (preventNewLines && 
      (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR)) { 
      e.doit = false; 
     } 
    } 
}); 
+1

당신은 자신의 질문에 대답해야하며 아직 열려있는 질문이므로 답을 확인하십시오. – GenericJam

답변

0

이 여기 https://stackoverflow.com/a/7589098/18445

@Override 
public boolean isNavigationEvent(ColumnViewer viewer, Event event) { 
    return event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR; 
} 
대답 한 사람에게 도움이되기를 바랍니다