TITLE:JTreeの水平垂直線を表示しない

JTreeの水平垂直線を表示しない

編集者:Terai Atsuhiro~

作成日:2008-02-04
更新日:2023-07-28 (金) 17:12:10
  • category: swing folder: TreePaintLines title: JTreeの水平垂直線を表示しない tags: [JTree, UIManager] author: aterai pubdate: 2008-02-04T16:09:01+09:00 description: JTreeのアイコンを繋ぐ水平垂直線の表示の有無を切り替えます。 image: https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTWNxTrfYI/AAAAAAAAAo4/xS9RjkcNYYM/s800/TreePaintLines.png

概要

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

概要

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

#screenshot

サンプルコード

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

解説

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

解説

上記のサンプルでは、左のJTreeの水平線などの表示を、UIManager.put("Tree.paintLines", Boolean.FALSE)で切り替えています。 複数のJTreeの表示を個別に切り替えたい場合は、Swing - Hide horizontal and vertical lines in a JTreeのように、BasicTreeUI#paintHorizontalLine メソッドなどをオーバーライドする方法もあります。
  • 右の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(...)メソッドなどをオーバーライドする方法がある

参考リンク

参考リンク

コメント

コメント