私はjtreeを持っており、ユーザーは兄弟ノードを選択できるようにしたいだけです。ユーザーが兄弟ではないノードを選択した場合、以前に選択したノードの選択を解除する必要があります。 ユーザーは、連続していない兄弟ノードも選択できる必要があります。私はdefaulttrelectionlectionmodelを拡張することを望んでいました。JTree選択モデルの作成方法は兄弟選択のみ可能ですか?
これを行う簡単な方法はありますか?
私はjtreeを持っており、ユーザーは兄弟ノードを選択できるようにしたいだけです。ユーザーが兄弟ではないノードを選択した場合、以前に選択したノードの選択を解除する必要があります。 ユーザーは、連続していない兄弟ノードも選択できる必要があります。私はdefaulttrelectionlectionmodelを拡張することを望んでいました。JTree選択モデルの作成方法は兄弟選択のみ可能ですか?
これを行う簡単な方法はありますか?
TreeSelectionModel
(現在の選択状態が保存されます)とTreeSelectionListener
で再生する必要があるようです。あなたの選択が変更されたときに、あなたのTreeSelectionListener
がアクティブモードでない場合、それはそのモードに入ります(これはあなたのリスナーが選択をいくつかのケースで更新し、あなたが欲しい ?)。次に、TreeSelectionModel#getSelectionPaths()
を使用して選択したノードをチェックします。この配列サイズが1の場合、ノードは1つだけ選択され、すべてOKです。そのサイズsiが1より大きい場合、それらのノードが兄弟であることを保証するコードを書く必要があります(例として、TreePath
が最後の部分を除いて同一であることを確認してください)