Swing/TreeSelection の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/TreeSelection へ行く。
- Swing/TreeSelection の差分を削除
--- category: swing folder: TreeSelection title: JTreeの選択モードを切り替える tags: [JTree, TreeSelectionModel, TreePath] author: aterai pubdate: 2011-08-01T15:39:38+09:00 description: JTreeからSelectionModelを取得し、ノードの選択モードを切り替えます。 image: https://lh6.googleusercontent.com/-bPltus2wD6w/TjZCCGnH40I/AAAAAAAABAE/tgmolSg-2Ys/s800/TreeSelection.png --- * 概要 [#summary] `JTree`から`SelectionModel`を取得し、ノードの選択モードを切り替えます。 #download(https://lh6.googleusercontent.com/-bPltus2wD6w/TjZCCGnH40I/AAAAAAAABAE/tgmolSg-2Ys/s800/TreeSelection.png) * サンプルコード [#sourcecode] #code(link){{ JRadioButton r0 = new JRadioButton("DISCONTIGUOUS_TREE_SELECTION", true); r0.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { tree.getSelectionModel().setSelectionMode( TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); } }); JRadioButton r1 = new JRadioButton("SINGLE_TREE_SELECTION"); r1.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); } }); JRadioButton r2 = new JRadioButton("CONTIGUOUS_TREE_SELECTION"); r2.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { tree.getSelectionModel().setSelectionMode( TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); } }); }} * 解説 [#explanation] 上記のサンプルでは、`tree.getSelectionModel().setSelectionMode(...)`メソッドを使用して、選択モードを設定しています。 - `TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION` -- KBD{Ctrl+Click}、KBD{Shift+Click}などで、自由に`TreePath`を選択可能 -- KBD{Ctrl+Click}、KBD{Shift+Click}などで自由に`TreePath`を選択可能 - `TreeSelectionModel.SINGLE_TREE_SELECTION` -- `TreePath`をひとつだけ選択可能 - `TreeSelectionModel.CONTIGUOUS_TREE_SELECTION` -- `TreePath`が連続している場合は、複数選択が可能 -- `TreePath`が連続している場合は複数選択が可能 * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/tree/TreeSelectionModel.html#setSelectionMode-int- TreeSelectionModel#setSelectionMode(int) (Java Platform SE 8)] * コメント [#comment] #comment #comment