当前位置: 首页 > 面试题库 >

带键盘的Java ListSelectionListener接口

步兴德
2023-03-14
问题内容

我已经实现了ListSelectionListener,如下所示,因此在选择了第一个表中的特定行之后,第二个表将进行相应的更新。

class SelectionListener implements ListSelectionListener {

    public SelectionListener(){}

    @Override
    public void valueChanged(ListSelectionEvent e) 
    {
        if (e.getSource() == myTrumpsAndMessages.jTable1.getSelectionModel() 
            && myTrumpsAndMessages.jTable1.getRowSelectionAllowed()
            && e.getValueIsAdjusting()) 
        {
          int selected = myTrumpsAndMessages.jTable1.getSelectedRow();
            clearjTable(jTable4);
            showSubscribers(selected);
        }
    }

}

有没有一种方法不仅可以在选择鼠标时,而且可以在通过键盘进行选择时调用侦听器?


问题答案:

出现异常体验的原因-没有通过键盘选择的通知-是valueIsAdjusting针对键盘与鼠标触发的选择事件的微妙不同设置:

  • 键盘触发的选择(即使带有修饰符)仅触发一次(调整== false)
  • 鼠标触发的选择始终触发两次(第一次触发为true,第二次触发为false)

这个事实加上不寻常的逻辑(@Robin发现了,+ 1对他:-)

if (e.getSource() == myTrumpsAndMessages.jTable1.getSelectionModel() 
        && myTrumpsAndMessages.jTable1.getRowSelectionAllowed()
        // typo/misunderstanding or feature? doing stuff only when adjusting 
        && e.getValueIsAdjusting())

(反应只有在选择 调整)导致没有看到键盘引起的变化。



 类似资料:
  • 我正在使用python 3.4的curses,我需要一个简单的方法来用箭头键计数,每次我按上,x给自己加1,按下,它从自己减去1。

  • 问题内容: 我正在使用Java swing使用计算器,并且希望能够通过键盘输入数字和操作。我似乎无法正常工作。 问题答案: 我认为这是问题所在: 从JComponent.getInputMap() javadoc: 返回组件具有焦点时使用的。这是的便捷方法。 因此,按钮必须具有焦点才能正常工作。由于您正在使用计算器,因此建议您改用以下方法: JComponent.getInputMap(int c

  • 问题内容: 我正在用flexbox构建一个计算器。我想要它的一个键是高度的两倍,另一个键是宽度的两倍。 我对此进行了很多搜索,但找不到一起找到这两种情况。 对于高度的两倍关键,只有答案,我发现是使作为。但是在那种情况下,我将无法制作双倍宽度的键。 这是我的代码(在codepen.io上)。请帮忙。 问题答案: 将凹凸不平的钥匙包装在自己的伸缩容器中,然后从那里去。 笔记: 在/ 计算中包括填充和边

  • CGDB通过键盘用户接口从用户那里获取输入。我们通常称键盘用户接口为KUI。CGDB仅需要向KUI获取KUI提供的下一个用户输入的指令。 除了读取用户输入以及提供这些输入给CGDB以外,KUI还有两个主要的责任:它需要检测用户输入自定义的键盘映射与用户按下的特殊键。 用户定义的映射,或是简单映射,是用来改变输入的按键的含义。一些用户可能会称将这种功能称之为 宏 。例如:map a b。当用户输入了

  • 鼠标驱动的工作是触发按键按下和释放事件,通常我们只需要绑定系统的按键事件然后转换成 LCUI 的按键事件对象即可。 如需了解更多,可参考现有的鼠标驱动代码: ​src/platform/linux/linux_keyboard.c​ ​src/platform/linux/linux_keyboard.c​ ​src/platform/windows/windows_keyboard.c​ ​sr

  • 在Microsoft Windows 98中,键盘和鼠标是两个标准的使用者输入来源,在一些连贯操作中常产生互补作用。当然,鼠标在今天的应用程序中比十年前使用得更为广泛。甚至在一些应用程序中,我们更习惯于使用鼠标,例如在游戏、画图程序、音乐程序以及Web浏览器等程序中就是这样。然而,我们可以不使用鼠标,但绝对不能从一般的PC中把键盘拆掉。 相对于个人计算机的其它组件,键盘有非常久远的历史,它起源于1