Java 如何防止按下Enter键后StyledText中出现新行

Java 如何防止按下Enter键后StyledText中出现新行,java,user-interface,swt,newline,styledtext,Java,User Interface,Swt,Newline,Styledtext,在启用preventNewLines标志的情况下,我需要在按下Enter键后防止TextViewer生成新行 我有一段代码: TextViewer myTextViewer = new TextViewer (myGroup, SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER | S

在启用preventNewLines标志的情况下,我需要在按下Enter键后防止TextViewer生成新行

我有一段代码:

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;
         }
     }
});
但不管怎样,它会产生新的线条。。。我做错了什么? 有人能告诉我正确的密码吗?如何防止

编辑: 好的,我幸运地找到了答案,我希望它对其他人有帮助,也许

myStyledText.addVerifyKeyListener(new VerifyKeyListener() {

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

这里已经回答了这个问题


你应该回答你自己的问题,然后检查它是否已回答,因为它仍然是一个悬而未决的问题。
@Override
public boolean isNavigationEvent(ColumnViewer viewer, Event event) {
    return event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR;
}