您可以使用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以仅防止助记符遍历。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)