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
在任何情况下都会起作用,无论该键是否具有默认行为
我不希望重写平台行为,因为这样您的应用程序的行为将与平台的一般用法不一致。非常感谢。。它起作用了。嗯,我同意你的看法,但就我而言,我为盲人开发了一个软件,有些功能需要修改以适应特殊需要。