2012-11-12 7 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; 
     } 
    } 
}); 

しかし、それはとにかく新しい行を作る:

私は、コードのこの部分を持っていますか? 誰でも私に正しいコードを投稿して、それを防ぐ方法を教えてください。

EDIT: 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; 
} 
に答えてきたことがわかりました
関連する問題