【问题标题】:Pressing TAB key loses focus on widget按 T​​AB 键失去对小部件的关注
【发布时间】:2012-09-09 09:14:42
【问题描述】:

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

但是当我想输入 2 个单词并在它们之间用 TAB 分隔时,编辑器会失去焦点并移动到下一个要编辑的单元格(就像在浏览器表单中按 Tab 键一样)。我不希望这种情况发生,让我的用户在单词之间输入标签,而不会失去焦点。有人知道如何创建这个吗?

我已经尝试过使用 keyListener,但似乎这个监听器甚至没有处理 tab 事件

【问题讨论】:

    标签: java eclipse swt eclipse-rcp jface


    【解决方案1】:

    您可以将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;
                    }
                }
            }
        });
    

    查看this示例代码sn-p。

    【讨论】:

    • 您不应该发布没有任何内容详细信息的链接。如果地址不可达,你的回答就一文不值:Are answers that just contain links elsewhere really “good answers”?
    • 感谢 Alex Stybaev 的建议,但我的表、列、小部件似乎没有实现 TraverseListener 接口
    • @bvanvelsen 如果您真的在使用 SWT Table,那么您可以按照 Alex 的建议使用 table.addTraverseListener(listener)
    猜你喜欢
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    相关资源
    最近更新 更多