Swing/PreventToggleClickNodeExpanding のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/PreventToggleClickNodeExpanding へ行く。
- 1 (2019-11-25 (月) 12:44:26)
- 2 (2020-01-06 (月) 17:41:42)
- 3 (2021-07-06 (火) 18:51:45)
- 4 (2023-12-03 (日) 17:21:57)
- category: swing folder: PreventToggleClickNodeExpanding title: JTreeで特定のノードをマウスクリックした場合のみ展開不可に設定する tags: [JTree] author: aterai pubdate: 2019-11-25T12:42:39+09:00 description: JTreeで特定の親ノードをマウスクリックした場合のみ展開・折り畳みを不可に設定します。 image: https://drive.google.com/uc?id=1cFSEIvHIrn8nmolJt9cWlyVen4iEpBjV
概要
JTreeで特定の親ノードをマウスクリックした場合のみ展開・折り畳みを不可に設定します。
Screenshot
Advertisement
サンプルコード
JTree tree1 = new JTree(treeModel);
tree1.addTreeWillExpandListener(new FileExpandVetoListener());
JTree tree2 = new JTree(treeModel);
tree2.setUI(new MetalTreeUI() {
@Override protected boolean isToggleEvent(MouseEvent e) {
File file = getFileFromTreePath(tree.getSelectionPath());
return file == null && super.isToggleEvent(e);
}
});
View in GitHub: Java, Kotlin解説
- 左:
TreeWillExpandListener
- JTreeで展開不可のノードを設定する
TreeWillExpandListener
を設定して特定のノードの展開をすべて不可に設定- キー入力、ノードのマウスクリック、展開・折り畳みアイコンのマウスクリック、ポップアップメニューからの展開などのすべてが不可になる
- 右:
override MetalTreeUI#isToggleEvent(...)
MetalTreeUI#isToggleEvent(...)
メソッドをオーバーライドして特定ノードのマウスクリックのみ展開を不可に設定- キー入力、展開・折り畳みアイコンのマウスクリックであれば、展開可能
- すべてのノードをキー入力、展開・折り畳みアイコンのマウスクリックで展開可能、ノードのマウスクリックのみ展開を不可にする場合は
tree.setToggleClickCount(0);
が使用可能