Java 按TAB键将失去对小部件的关注

Java 按TAB键将失去对小部件的关注,java,eclipse,swt,eclipse-rcp,jface,Java,Eclipse,Swt,Eclipse Rcp,Jface,我正在SWT中使用一个表组件。每当我编辑此表中的值并按enter键时,此值将保存在此表中的文本组件中 但是,当我想输入两个单词时,两个单词之间用一个制表符隔开,那么编辑器就会失去焦点,转到下一个要编辑的单元格(就像在浏览器窗体中按TAB键一样)。我不希望这种情况发生,让我的用户在单词之间输入标签,而不会失去焦点。有人知道怎么做吗 我已准备好尝试使用keyListener,但该listener似乎甚至没有处理tab事件您可以在文本字段中添加一个TraverseListener text.addTr

我正在SWT中使用一个表组件。每当我编辑此表中的值并按enter键时,此值将保存在此表中的文本组件中

但是,当我想输入两个单词时,两个单词之间用一个制表符隔开,那么编辑器就会失去焦点,转到下一个要编辑的单元格(就像在浏览器窗体中按TAB键一样)。我不希望这种情况发生,让我的用户在单词之间输入标签,而不会失去焦点。有人知道怎么做吗


我已准备好尝试使用keyListener,但该listener似乎甚至没有处理tab事件

您可以在文本字段中添加一个
TraverseListener

text.addTraverseListener(new TraverseListener () {
        public void keyTraversed(TraverseEvent e) {
            switch (e.detail) {
                case SWT.TRAVERSE_TAB_NEXT:
                case SWT.TRAVERSE_TAB_PREVIOUS: {
                    e.doit = false;
                }
            }
        }
    });

查看示例代码片段。

您可以在文本字段中添加一个
transverseListener

text.addTraverseListener(new TraverseListener () {
        public void keyTraversed(TraverseEvent e) {
            switch (e.detail) {
                case SWT.TRAVERSE_TAB_NEXT:
                case SWT.TRAVERSE_TAB_PREVIOUS: {
                    e.doit = false;
                }
            }
        }
    });

查看示例代码片段。

您不应该发布内容没有任何细节的链接。如果地址无法访问,那么您的答案就毫无价值:感谢Alex Stybaev的建议,但我的表、列、小部件似乎没有实现TraverseListenerInterface@bvanvelsen如果您确实在使用SWT
,那么您可以使用
表。addTraverseListener(侦听器)
正如Alex建议的那样。你不应该在没有任何内容细节的情况下发布链接。如果地址无法访问,那么您的答案就毫无价值:感谢Alex Stybaev的建议,但我的表、列、小部件似乎没有实现TraverseListenerInterface@bvanvelsen如果您确实在使用SWT
,那么您可以按照Alex的建议使用
表.addTraverseListener(listener)