java - 如何禁用左右箭头键在 SWT 列表中导航?

标签 java list navigation swt

默认情况下,SWT List 允许向左向上 箭头键向上移动列表项,使用向右向下 箭头键向下移动列表项。但我想使用 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);

谢谢!

最佳答案

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

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

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

我不想覆盖平台行为,因为这样您的应用程序的行为将与平台的一般用法不一致。

关于java - 如何禁用左右箭头键在 SWT 列表中导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28582743/

相关文章:

java - Spring 批处理 : Read from txt files and return all lines as a single String to the processor

windows - 如何在 CMake 中使用分号值创建一个列表?

xcode - 如何在 iOS 14 中删除 SwiftUI 2.0 中的列表分隔符行

c# - 如何在运行时向菜单添加菜单项

jquery - 移动菜单上的响应问题

java - 从一个表中读取行并将其复制到Java中的另一个数据库表中

java - 检查 Java 中对象/变量类型的最佳方法

java - 计算 2 个链表中值的总和

c# - 消息解析器 C#

xcode - 当键盘可见/不可见时显示/隐藏 navigationBarItems | SwiftUI