2015-12-09 3 views
0

Я пытался использовать слушателей на глюоне CharmListView какое-то время. В моем проекте это не сработало, поэтому я решил попробовать его в приложении FIFTY STATES. Я добавил код ниже:Mouse Listeners in Gluon

charmListView.onMouseClickedProperty().set((MouseEvent event) ->{ 
          Logger.getGlobal().log(Level.INFO, "Pick: {0}", new Object[]{event.getPickResult()}); 
         }); 

Когда я запустить приложение, NO Кликните выстреливает MOUSE_CLICKED событие. Когда я прокручиваю вниз немного, так что ячейка заголовка списка полностью состыкована следующим образом: enter image description here

CharmListView запускает событие только по щелчку на верхней ячейке заголовка.

INFO: Pick: PickResult [node = [email protected][styleClass=text-box], point = Point3D [x = 133.0, y = 13.0, z = 0.0], distance = 1067.366530964699 

Ни один другой щелчок нигде в списке не запускает событие. Я пробовал добавить тот же слушатель к нормальному ListView, и MouseEvent всегда запускается после щелчка по любой области ListView. Итак, теперь я застрял, потому что не могу установить слушателя для получения выбранного элемента.

ответ

0

Элемент управления CharmListView предназначен, в основном, для мобильных приложений, в которых используются жестовые свитки и салфетки. Но эти жесты вызывают щелчок мышью или нажатые события.

Если ячейки списка содержат обработчик событий для обработки последнего, единственный способ работы прокрутки - использовать их, иначе всякий раз, когда вы прокручиваете список, обработчик события ячейки также будет обработан, когда вы начнете прокрутку.

Именно поэтому setOnMouseClicked() не вызывает никаких событий, если вы нажмете на listView.

Для получения доступа к модели выбора вида списка, пожалуйста, обратитесь к этому question.