Summary
JTreeのアイコンを繋ぐ水平垂直線の表示の有無を切り替えます。
Screenshot

Advertisement
Source Code Examples
final JTree tree = new JTree();
add(new JCheckBox(new AbstractAction("Tree.paintLines") {
@Override public void actionPerformed(ActionEvent e) {
if (((JCheckBox) e.getSource()).isSelected()) {
UIManager.put("Tree.paintLines", Boolean.TRUE);
} else {
UIManager.put("Tree.paintLines", Boolean.FALSE);
}
SwingUtilities.updateComponentTreeUI(tree); // 左のJTreeだけ更新
}
}), BorderLayout.NORTH);
View in GitHub: Java, KotlinDescription
上記のサンプルでは、左のJTreeの水平線などの表示を、UIManager.put("Tree.paintLines", Boolean.FALSE)で切り替えています。
- 右の
JTreeは常に水平垂直線を非表示に設定 - デフォルトで線を表示しない
GTKLookAndFeelなどではUIManager.put("Tree.paintLines", Boolean.TRUE)としても接続線は描画されない - 複数の
JTreeの表示を個別に切り替えたい場合はHide horizontal and vertical lines in a JTree | Oracle Forumsで、Michael_Dunn さんが投稿(2007/10/24 2:42)しているコードのようにBasicTreeUI#paintHorizontalLine(...)メソッドなどをオーバーライドする方法がある