2011-02-01 5 views
2

私はjtreeを持っており、ユーザーは兄弟ノードを選択できるようにしたいだけです。ユーザーが兄弟ではないノードを選択した場合、以前に選択したノードの選択を解除する必要があります。 ユーザーは、連続していない兄弟ノードも選択できる必要があります。私はdefaulttrelectionlectionmodelを拡張することを望んでいました。JTree選択モデルの作成方法は兄弟選択のみ可能ですか?

これを行う簡単な方法はありますか?

答えて

3

TreeSelectionModel(現在の選択状態が保存されます)とTreeSelectionListenerで再生する必要があるようです。あなたの選択が変更されたときに、あなたのTreeSelectionListenerがアクティブモードでない場合、それはそのモードに入ります(これはあなたのリスナーが選択をいくつかのケースで更新し、あなたが欲しい ?)。次に、TreeSelectionModel#getSelectionPaths()を使用して選択したノードをチェックします。この配列サイズが1の場合、ノードは1つだけ選択され、すべてOKです。そのサイズsiが1より大きい場合、それらのノードが兄弟であることを保証するコードを書く必要があります(例として、TreePathが最後の部分を除いて同一であることを確認してください)