Tôi cần phải ngăn chặn TextViewer làm mới dòng sau khi tôi nhấn phím Enter trong trường hợp ngăn chặnNewLines cờ được kích hoạt.Làm thế nào để ngăn chặn dòng mới trong StyledText sau khi Enter ép
Tôi có đoạn mã này:
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;
}
}
});
Nhưng nó làm cho dòng mới anyway ... Tôi đang làm gì sai? Ai có thể vui lòng gửi cho tôi mã chính xác như thế nào để ngăn chặn nó?
EDIT: OK, tôi đã tìm thấy câu trả lời bằng cách may mắn, tôi hy vọng nó giúp cho người khác, có lẽ ...
myStyledText.addVerifyKeyListener(new VerifyKeyListener() {
@Override
public void verifyKey(VerifyEvent e) {
if (preventNewLines &&
(e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR)) {
e.doit = false;
}
}
});
Bạn nên trả lời câu hỏi của riêng mình rồi kiểm tra câu hỏi đó như đã trả lời vì nó vẫn là câu hỏi mở. – GenericJam