2012-11-12 7 views
8

Potrzebuję zapobiec tworzeniu nowych linii przez TextViewer po naciśnięciu klawisza Enter w przypadku, gdy flaga preventewines jest włączona.Jak zapobiec nowej linii w StyledText po Enter wciśnięty

Mam ten fragment kodu:

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; 
     } 
    } 
}); 

Ale to sprawia, że ​​nowe linie tak ... Co robię źle? Czy ktokolwiek może wysłać mi prawidłowy kod, jak temu zapobiec?

EDIT: OK, znalazłem odpowiedź od szczęścia, mam nadzieję, że przyczynia się do kogoś innego, może ...

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

Powinieneś odpowiedzieć na własne pytanie, a następnie sprawdzić odpowiedź jako otwartą. – GenericJam

Odpowiedz

Powiązane problemy