Java 如何防止按下Enter键后StyledText中出现新行
在启用preventNewLines标志的情况下,我需要在按下Enter键后防止TextViewer生成新行 我有一段代码: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
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;
}