0

CharmListViewしばらくの間、gluon でリスナーを使用しようとしています。私のプロジェクトではうまくいかなかったので、FIFTY STATES アプリで試してみることにしました。以下のコードを追加しました。

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

アプリケーションを起動すると、NO クリックでMOUSE_CLICKEDイベントが発生します。このようにリストヘッダーセルが完全にドッキングされるように少し下にスクロールすると、ここに画像の説明を入力

上部の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。選択したアイテムを取得するようにリスナーを設定できないため、今は行き詰まっています。

4

1 に答える 1

0

CharmListView コントロールは主に、スクロールとスワイプのジェスチャを使用するモバイル アプリケーションを対象としています。ただし、これらのジェスチャは、マウスのクリック イベントまたは押されたイベントをトリガーします。

リスト セルに後者を処理するためのイベント ハンドラーが含まれている場合、スクロールが機能する唯一の方法はそれらを消費することです。それ以外の場合は、リストをスクロールするたびに、スクロールを開始したときにセル イベント ハンドラーも処理されます。

setOnMouseClicked()これが、listView をクリックしてもイベントがトリガーされない理由です。

リスト ビューの選択モデルにアクセスするには、この質問を参照してください。

于 2015-12-10T09:18:47.813 に答える