【问题标题】:How to disable left and right arrow keys for navigation in SWT List?如何在 SWT 列表中禁用左右箭头键进行导航?
【发布时间】:2015-02-18 11:40:03
【问题描述】:

默认情况下,SWT List 允许 leftup 箭头键上移列表项,rightdown 箭头键下移列表项。但我想使用leftright 箭头键来提出另一个建议。如何删除默认情况下位于SWT List 中的leftright 箭头键侦听器?然后替换我自己的。这是我要使用的代码:

Listener listListener = new Listener() {
        public void handleEvent(Event e) {
            int RowIndex = listData.getSelectionIndex();

            if(RowIndex == 0){
                if (e.keyCode == SWT.ARROW_RIGHT) { //right arrow
                    //do something
                }else if (e.keyCode == SWT.ARROW_LEFT) { //left arrow
                    //do something
                }
             }
         }
    };
    list.addListener(SWT.KeyDown, listListener);

谢谢!

【问题讨论】:

    标签: java list navigation swt


    【解决方案1】:

    您可以通过将doit 标志设置为false 来抑制击键的默认行为,如下所示:

    if( event.keyCode == SWT.ARROW_RIGHT ) {
      // do something    
      event.doit = false;
    }
    

    箭头键的默认行为很可能取决于平台。 Windows 的行为与您描述的一样,但其他平台的行为可能有所不同。在任何情况下,将doit 标志设置为false 都将起作用,无论该键是否具有默认行为。

    我宁愿不覆盖平台行为,因为您的应用程序的行为将与平台的一般用途不一致。

    【讨论】:

    • 非常感谢.. 它有效。好吧,我同意你的看法,但就我而言,我为盲人开发了一个软件,并且必须修改一些功能以满足特殊需求。
    猜你喜欢
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2012-07-09
    • 2022-01-16
    • 2011-12-20
    相关资源
    最近更新 更多