【发布时间】:2012-11-01 00:07:27
【问题描述】:
如果启用了 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;
}
}
});
【问题讨论】:
-
您应该回答自己的问题,然后检查它是否已回答,因为它仍然是一个悬而未决的问题。
标签: java user-interface swt newline styledtext