这是一些示例代码,使用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的内容,它只会在鼠标点击事件中触发两次这样的事件。有了这些知识,你会认为我只会将所有东西都移出那里,但如果鼠标是导致事件的原因而不是使用箭头,我需要以不同的方式发生。但是,使用此代码,使用箭头键导航可防止索引不断更改。