在swt中提交的多行文本上使用Tab键?

G B*_*G B 8 java swt tabs text multiline

如何防止多行文本字段"窃取"标签键按下?

我的意思是:我想使用TAB在窗口的元素之间循环,但是当我输入多行文本时,TAB变成"普通"键,只需将制表符插入我正在键入的文本中.

我该如何处理?我应该编写一些自定义侦听器,还是可以通过使用SWT常量来更改组件的行为?

Sim*_*mon 20

SWT定义了一种使用TraverseListener类实现此类行为的机制.以下代码段(摘自此处)显示了如何:

Text text1 = new Text(shell, SWT.MULTI | SWT.WRAP);
text1.setBounds(10,10,150,50);
text1.setText("Tab will traverse out from here.");
text1.addTraverseListener(new TraverseListener() {
    public void keyTraversed(TraverseEvent e) {
        if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
            e.doit = true;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)