JTreeのノードを編集中に表示するアイコンを変更する
Total: 4389, Today: 1, Yesterday: 0
Posted by aterai at
Last-modified:
Summary
JTreeのノードが編集開始されたときに表示するノードアイコンを変更します。
Screenshot

Advertisement
Source Code Examples
JTree tree2 = new JTree();
tree2.setEditable(true);
DefaultTreeCellRenderer renderer2 = new DefaultTreeCellRenderer();
renderer2.setOpenIcon(icon);
renderer2.setClosedIcon(icon);
renderer2.setLeafIcon(icon);
tree2.setCellRenderer(renderer2);
JTree tree3 = new JTree();
tree3.setEditable(true);
DefaultTreeCellRenderer renderer3 = new DefaultTreeCellRenderer();
renderer3.setOpenIcon(new ColorIcon(Color.GREEN));
renderer3.setClosedIcon(new ColorIcon(Color.BLUE));
renderer3.setLeafIcon(new ColorIcon(Color.ORANGE));
tree3.setCellRenderer(renderer2);
tree3.setCellEditor(new DefaultTreeCellEditor(tree3, renderer3));
View in GitHub: Java, KotlinDescription
- 左
DefaultTreeCellRenderer#getTreeCellRendererComponent(...)をオーバーライドし内部でsetIcon(icon)メソッドを使用してノードアイコンを変更- ノード編集中はデフォルトのアイコンが表示される
- 中
DefaultTreeCellRenderer#setOpenIcon(...)、DefaultTreeCellRenderer#setClosedIcon(...)、DefaultTreeCellRenderer#setLeafIcon(...)メソッドを使用してアイコンを変更したTreeCellRendererをJTree#setCellRenderer(...)メソッドで設定- ノード編集中は
DefaultTreeCellEditorが上記のTreeCellRendererからアイコンを取得するため、編集中も同じアイコンが表示される
- 右
DefaultTreeCellRenderer#setOpenIcon(...)、DefaultTreeCellRenderer#setClosedIcon(...)、DefaultTreeCellRenderer#setLeafIcon(...)メソッドを使用してアイコンを変更したTreeCellRendererをJTree#setCellRenderer(...)メソッドで設定DefaultTreeCellEditorで使用するTreeCellRendererには表示用とは異なるアイコンを設定してJTree#setCellEditor(...)メソッドで設定しているため、編集中は異なるアイコンが表示される