如何在SETList中禁用左右箭头键进行导航?

时间:2015-02-18 11:40:04

标签: java list navigation swt

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

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);

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过将doit标记设置为false来禁止关键笔划的默认行为

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

箭头键的默认行为很可能取决于平台。 Windows的行为与您描述的一样,但其他平台可能表现不同。无论密钥是否具有默认行为,将doit标志设置为false都将有效。

我不想覆盖平台行为,因为您的应用程序在平台的一般用法方面会表现不一致。