4

ControlsFX の GridView に MultipleSelectionModel を実装しようとしています。Jonathan Giles 氏は、インターネットを調査して、すべての GridCell にリスナーを追加するのは悪い考えだと述べました。これは、選択、選択解除などのイベントの選択モデルに通知する方法を疑問に思いました。それを読む前に、GridCell で使用される Node はマウス/タッチ/キー イベントを消費し、それに応じて GridCells のupdateSelectedメソッドを使用すると考えていました。ここでの私の質問は、この更新がリスナー/モデルにまったく伝播するかどうか、または手動で (どこかに) バインドする必要があるかどうかです。現時点では方法がわかりません。

また、選択モデルは読み取り専用のオブザーバブル リストを使用します。これは、GridView のデータ (アイテム リスト) を選択モデルのリストにバインドする方法に関して別の問題を引き起こします。

おそらく、選択モデルを完全に使用せずに、Cell/Node レベルで入力イベントを傍受し、バッキング ObservableList または 2 を使用しながら、Cell の updateItem メソッドを強調表示するなどの操作を行って、すべてを追跡し、それに応じて更新することができます。しかし、これは最良の方法ではなく、ましてや良い方法ではありません。GridView の選択モデルが唯一の方法であるべきです。それが私がここにいる理由です。

4

1 に答える 1

3

MultiSelectionModel や JavaFX がもたらすものを必ずしも使用する必要はありません。選択したノードを格納するには、セットまたはリストを使用するだけで十分です。

javafx で ctrl キーを使用して Canvas の複数のコンポーネントを選択する方法の例を次に示します。私からの返事で。私はそれがあなたのニーズをカバーしていると思います。そうでない場合は、必要なものを具体的に教えてください。

于 2015-04-19T23:19:22.123 に答える