SWT全局KeyListener按钮焦点问题

SWT全局KeyListener按钮焦点问题,第1张

SWT全局KeyListener按钮焦点问题

您可以使用doin字段使用TraverseListener和禁用的新闻事件检测。这是一个示例代码:

display.addFilter(SWT.KeyDown, new Listener() {    public void handleEvent(Event e) {        if (e.character == 32) { System.out.printf("Space detected %sn", e);        }    }});Button b1 = new Button(shell, SWT.PUSH);b1.addSelectionListener(new SelectionAdapter() {    @Override    public void widgetSelected(SelectionEvent se) {        System.out.printf("Button pressed %sn", se);    }});b1.addTraverseListener(new TraverseListener() {    @Override    public void keyTraversed(TraverseEvent te) {        System.out.printf("Traverse detected %sn", te);        te.doit = true;    }});

如果

addTraverseListener()
不存在,则在过滤器之后检测到您的空格按钮,因此您将看到“已检测到空格…”以及该“按钮被按下…”之后。设置好之后
te.doit= true
,您要对SWT进行空格键遍历(实际上不执行任何 *** 作),而不是触发键侦听器。您可以选择检查te.detail以仅防止助记符遍历。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5094002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存