TITLE:JTreeの水平垂直線を表示しない
#navi(../)
*JTreeの水平垂直線を表示しない [#la642829]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2008-02-04~
更新日:&lastmod;

#contents

**概要 [#a4543dc6]
JTreeのアイコンを繋ぐ水平垂直線の表示の有無を切り替えます。

#screenshot

**サンプルコード [#a4057d44]
#code{{
final JTree tree = new JTree();
add(new JCheckBox(new AbstractAction("Tree.paintLines") {
  public void actionPerformed(ActionEvent e) {
    if(((JCheckBox)e.getSource()).isSelected()) {
      UIManager.put("Tree.paintLines", Boolean.TRUE);
    }else{
      UIManager.put("Tree.paintLines", Boolean.FALSE);
    }
    tree.updateUI(); // 左のJTreeだけ更新
    //SwingUtilities.updateComponentTreeUI(MainPanel.this);
  }
}), BorderLayout.NORTH);
}}
-&jnlp;
-&jar;
-&zip;

**解説 [#d8a44352]
上記のサンプルでは、左のJTreeの水平線などの表示を、UIManager.put("Tree.paintLines", Boolean.FALSE);で切り替えています(右は常に非表示)。

元々、線を表示しない GTK L&F では、UIManager.put("Tree.paintLines", Boolean.TRUE);としても線は描画されないようです。

複数のJTreeの表示を個別に切り替えたい場合は、[[Swing - Hide horizontal and vertical lines in a JTree>http://forum.java.sun.com/thread.jspa?threadID=5229120]]のように、BasicTreeUI#paintHorizontalLine メソッドなどをオーバーライドする方法もあります。

**参考リンク [#ld863a92]
-[[Swing - Hide horizontal and vertical lines in a JTree>http://forum.java.sun.com/thread.jspa?threadID=5229120]]

**コメント [#v77a9c8a]
#comment