Gluon中的鼠标监听器

时间:2015-12-09 23:35:58

标签: javafx javafxports gluon

我一直试图在胶子CharmListView上使用听众一段时间。它在我的项目中没有用,所以我决定在FIFTY STATES应用程序上试一试。我添加了以下代码:

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

当我启动应用程序时,没有单击会触发MOUSE_CLICKED事件。当我稍微向下滚动以使列表标题单元格完全停靠时,enter image description here

CharmListView仅在点击顶部标题单元格时触发事件。

INFO: Pick: PickResult [node = VBox@49f31558[styleClass=text-box], point = Point3D [x = 133.0, y = 13.0, z = 0.0], distance = 1067.366530964699

列表中的任何其他位置都不会触发其他任何内容来触发事件。 我尝试将相同的侦听器添加到普通ListView,并且在点击MouseEvent的任何区域后始终触发ListView。所以现在我被卡住了,因为我无法设置一个监听器来获取所选项目。

1 个答案:

答案 0 :(得分:0)

CharmListView控件主要用于移动应用程序,您可以使用滚动和滑动手势。但这些手势会触发鼠标点击或按下的事件。

如果列表单元格包含一些处理后者的事件处理程序,则滚动工作的唯一方法是使用它们,否则每当滚动列表时,当您开始滚动时,也会处理单元格事件处理程序。

这就是为什么setOnMouseClicked()如果点击listView就不会触发任何事件的原因。

要访问列表视图选择模型,请参阅此question