Ich muss verhindern, dass TextViewer neue Zeilen erstellt, nachdem ich die Enter-Taste gedrückt habe, falls preventNewLines Flag aktiviert ist.Wie verhindere ich eine neue Zeile in StyleText, nachdem Enter gedrückt wurde
Ich habe dieses Stück Code:
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;
}
}
});
Aber es macht sowieso neue Linien ... Was mache ich falsch? Könnte mir bitte jemand den richtigen Code schreiben, um es zu verhindern?
EDIT: OK, ich die Antwort von Glück gefunden haben, ich hoffe, es jemand anderem hilft, vielleicht ...
myStyledText.addVerifyKeyListener(new VerifyKeyListener() {
@Override
public void verifyKey(VerifyEvent e) {
if (preventNewLines &&
(e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR)) {
e.doit = false;
}
}
});
Sie sollten Ihre eigene Frage beantworten und sie dann als beantwortet markieren, da es noch eine offene Frage ist. – GenericJam