Как я могу проверить, было ли событие valueChanged Swing JList изменено с помощью щелчка или мыши?
Вот пример кода, использующего Swilbuilder Groovy для создания кода для события valueChanged JList:
mainList.valueChanged = { event ->
if (event.isAdjusting) {
index = mainList.selectedIndex
otherList.clearSelection()
otherIndex = otherList.selectedIndex
} else {
mainListSelected = true
clearJList(otherList)
}
}
У меня есть два JList, и эта функция управляет тем, какой список можно выбирать с помощью переменной mainListSelected. Затем мы также должны изменить int eindex, который мы хотим использовать из выбора, в зависимости от того, является ли он индексом из mainList или otherList.
Я читал о event.isAdjusting, и он срабатывает только дважды при событии щелчка мышью. С этим знанием вы могли бы подумать, что я просто переместил бы все оттуда, но мне нужно, чтобы некоторые вещи происходили по-другому, если мышь вызывает то, что вызывает событие, а не использование стрелок. Однако с этим кодом использование навигации по стрелкам предотвращает изменение индекса.