• 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

概要

JTreeからSelectionModelを取得し、ノードの選択モードを切り替えます。

サンプルコード

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);
  }
});
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、tree.getSelectionModel().setSelectionMode(...)メソッドを使用して、選択モードを設定しています。

  • TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION
    • Ctrl+ClickShift+Clickなどで、自由にTreePathを選択可能
  • TreeSelectionModel.SINGLE_TREE_SELECTION
    • TreePathをひとつだけ選択可能
  • TreeSelectionModel.CONTIGUOUS_TREE_SELECTION
    • TreePathが連続している場合は、複数選択が可能

参考リンク

コメント