2015-12-09 30 views
0

我一直在嘗試在gluon CharmListView上使用聽衆一段時間。它沒有在我的項目中工作,所以我決定在FIFTY STATES應用程序上嘗試它。我添加下面的代碼:Gluon的鼠標聽衆

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 = [email protected][styleClass=text-box], point = Point3D [x = 133.0, y = 13.0, z = 0.0], distance = 1067.366530964699 

沒有其他點擊列表上的其他任何點擊事件。 我試過在正常的ListView上添加同樣的聽衆,點擊ListView的任何區域後總是會觸發MouseEvent。所以現在我被卡住了,因爲我無法設置偵聽器來獲取選定的項目。

回答

0

CharmListView控件主要用於使用滾動和輕掃手勢的移動應用程序。但是這些手勢會觸發鼠標點擊或按下的事件。

如果列表單元格包含一些事件處理程序來處理後者,則滾動工作的唯一方法就是使用它們,否則無論何時滾動列表時,單元格事件處理程序都將在您開始滾動時進行處理。

這就是setOnMouseClicked()在您點擊listView時不會觸發任何事件的原因。

有關訪問列表視圖選擇模型,請參閱此question