Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何禁用SWT列表中导航的左右箭头键?_Java_List_Navigation_Swt - Fatal编程技术网

Java 如何禁用SWT列表中导航的左右箭头键?

Java 如何禁用SWT列表中导航的左右箭头键?,java,list,navigation,swt,Java,List,Navigation,Swt,默认情况下,SWT列表允许left和up箭头键向上移动列表项,允许right和down箭头键向下移动列表项。但是我想使用左和右箭头键来进行另一个提议。默认情况下,如何删除SWT列表中的left和right箭头键侦听器?然后替换我自己的。以下是我要使用的代码: Listener listListener = new Listener() { public void handleEvent(Event e) { int RowIndex = listData.

默认情况下,
SWT列表
允许
left
up
箭头键向上移动列表项,允许
right
down
箭头键向下移动列表项。但是我想使用
箭头键来进行另一个提议。默认情况下,如何删除
SWT列表中的
left
right
箭头键侦听器?然后替换我自己的。以下是我要使用的代码:

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);
谢谢大家!

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

if( event.keyCode == SWT.ARROW_RIGHT ) {
  // do something    
  event.doit = false;
}
箭头键的默认行为很可能取决于平台。Windows的行为与您描述的一样,但其他平台的行为可能不同。将
doit
标志设置为
false
在任何情况下都会起作用,无论该键是否具有默认行为


我不希望重写平台行为,因为这样您的应用程序的行为将与平台的一般用法不一致。

非常感谢。。它起作用了。嗯,我同意你的看法,但就我而言,我为盲人开发了一个软件,有些功能需要修改以适应特殊需要。