Java 如何检查Swing JList的valueChanged事件是否通过单击或鼠标更改?

Java 如何检查Swing JList的valueChanged事件是否通过单击或鼠标更改?,java,swing,groovy,swingbuilder,Java,Swing,Groovy,Swingbuilder,下面是一些示例代码,使用Groovy的swingbuilder为JList的valueChanged事件创建代码: mainList.valueChanged = { event -> if (event.isAdjusting) { index = mainList.selectedIndex otherList.clearSelection() otherIndex = otherList.

下面是一些示例代码,使用Groovy的swingbuilder为JList的valueChanged事件创建代码:

    mainList.valueChanged = { event ->
        if (event.isAdjusting) {
            index = mainList.selectedIndex
            otherList.clearSelection()
            otherIndex = otherList.selectedIndex
        } else {
            mainListSelected = true
            clearJList(otherList)
        }
    }
我有两个JList,这个函数控制哪些列表可以通过mainListSelected变量选择。然后,我们还必须根据是否是mainList或otherList中的索引,从选择中更改要使用的int-eindex


我读过关于event.isAdjusting的文章,在鼠标点击事件中,它只会像这样触发两次。有了这些知识,你可能会认为我会把所有的东西都搬出去,但是如果鼠标是导致事件发生的原因,而不是使用箭头,那么我需要某些事情以不同的方式发生。但是,使用此代码时,使用箭头键导航可防止索引不断更改。

但是,如果鼠标是导致事件的原因,而不是使用箭头,则我需要以不同的方式进行某些操作

-为什么?应用程序使用的标准UI是鼠标单击或使用键盘上的上/下键来选择项目。双击或使用Enter键将调用选定对象上的默认操作。用户应该能够使用鼠标或键盘进行处理。另请参阅