怎么样在改变Jtree中默认的图片?

aaa13469595923 2008-01-28 04:13:55
一般Jtree默认的图片是文件夹的图标,请问有什么方法能改变图标,请高手指点指点!
...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenweionline 2008-01-28
  • 打赏
  • 举报
回复
需要自定义绘制器(TreeCellRenderer)

jtree.setCellRenderer(new DefaultTreeCellRenderer() {

public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);

// closedIcon = ...;
// openIcon = ...;
// setIcon(closedIcon);

return this;
}
});
hcmsxy 2008-01-28
  • 打赏
  • 举报
回复

Swing 中负责绘图的部分都在相应的 Renderer 中完成.
缺省的 JTree 中 使用一个 DefaultTreeCellRenderer 的实例完成.

DefaultTreeCellRenderer  实现了 TreeCellRenderer 方法.

你可以自己实现一个 TreeCellRenderer 的实例.不过有点麻烦.
如果只想简单一点改变 图标,下边的例子就可以了.



public class TestJTree {

public static void main(String[] args) {


JTree tree = new JTree();

DefaultTreeCellRenderer renderer = ((DefaultTreeCellRenderer)tree.getCellRenderer());

renderer.setLeafIcon(new ImageIcon("c:/redswirl.gif"));
renderer.setOpenIcon(new ImageIcon("c:/lfolder.gif"));
renderer.setClosedIcon(new ImageIcon("c:/rfolder.gif"));


JFrame frame = new JFrame();
frame.add(tree);
frame.setSize(300,400);
frame.setVisible(true);

}

}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧