请问怎样设置JTree对象的图标
|
有不同的办法:
1.利用UIManager类,
Icon openIcon = new ImageIcon("open.gif");
Icon closeIcon = new ImageIcon("close.gif");
Icon leafIcon= new ImageIcon("leaf.gif");
UIManager.put("Tree.closeIcon",closeIcon);
UIManager.put("Tree.openIcon",openIcon);
UIManager.put("Tree.leafIcon",leafIcon);
JTree tree = new JTree();
//注意,UIManager必须在new被new出来之前。
//这样是设置了整个缺省值。不够灵活
2.利用TreeCellRenderer。
这里又可以分为两个办法,第一,利用
DefaultTreeCellRenderer renderer =new DefaultTreeCellRenderer ();
renderer.setClosedIcon(closeIcon);
renderer.setOpenIcon(openIcon);
renderer.setLeafIcon(leafIcon);
renderer.setFont(new Font());//自己定义字体
这样比较简单。
第二。如果想自己时刻控制tree的图标,或者说tree的图标希望能动态根据情况来改变的话,需要自己扩展DefaultTreeCellRenderer,
实现getTreeCellRendererComponent()
方法,这里可以根据tree的具体情况,来实现图标,字体颜色,甚至节点的绘制方式。比如你在树节点上放置一个checkBox之类等等。
总之,看看java2图形技术卷II swing.
第21章,有详细说明.