你要自己实现一个TreeCellRenderer。
并让你的Tree使用这个TreeCellRenderer,语句是
this.setCellRenderer(new TransportTreeCellRenderer());
上面提到的TransportTreeCellRenderer是一个例子,见下面代码。下面是我以前做过的一个项目中的代码,希望对你能有帮助:import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;public class TransportTreeCellRenderer extends DefaultTreeCellRenderer{
public TransportTreeCellRenderer() {
super();
// setBackgroundNonSelectionColor( getBackground() );
} public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus){
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
super.getTreeCellRendererComponent(tree, value, selected,expanded, leaf, row,hasFocus);
// System.out.println("******** "+node.getLevel());
ImageIcon image0 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("transport01.gif"));
ImageIcon image2 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("transport02.gif"));
ImageIcon image3 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("transport.png"));
ImageIcon image1 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("folder02.gif"));
if(node.getLevel()==0){
this.setIcon(image0);
this.setSize(image0.getIconWidth(),image0.getIconHeight());
}else if(node.getLevel()==2){
this.setIcon(MainFrame.image_folder2);
this.setSize(MainFrame.image_folder2.getIconWidth(),MainFrame.image_folder2.getIconHeight());
}else if(node.getLevel()==3){
this.setIcon(image2);
this.setSize(image2.getIconWidth(),image2.getIconHeight());
}else if(node.getLevel()==5){
this.setIcon(image3);
this.setSize(image3.getIconWidth(),image3.getIconHeight());
} else {
this.setIcon(image1);
this.setSize(image1.getIconWidth(),image1.getIconHeight());
}
return this;
}
}
并让你的Tree使用这个TreeCellRenderer,语句是
this.setCellRenderer(new TransportTreeCellRenderer());
上面提到的TransportTreeCellRenderer是一个例子,见下面代码。下面是我以前做过的一个项目中的代码,希望对你能有帮助:import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;public class TransportTreeCellRenderer extends DefaultTreeCellRenderer{
public TransportTreeCellRenderer() {
super();
// setBackgroundNonSelectionColor( getBackground() );
} public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus){
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
super.getTreeCellRendererComponent(tree, value, selected,expanded, leaf, row,hasFocus);
// System.out.println("******** "+node.getLevel());
ImageIcon image0 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("transport01.gif"));
ImageIcon image2 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("transport02.gif"));
ImageIcon image3 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("transport.png"));
ImageIcon image1 = new ImageIcon(com.nordsan.multix_rcm.MainFrame.class.getResource("folder02.gif"));
if(node.getLevel()==0){
this.setIcon(image0);
this.setSize(image0.getIconWidth(),image0.getIconHeight());
}else if(node.getLevel()==2){
this.setIcon(MainFrame.image_folder2);
this.setSize(MainFrame.image_folder2.getIconWidth(),MainFrame.image_folder2.getIconHeight());
}else if(node.getLevel()==3){
this.setIcon(image2);
this.setSize(image2.getIconWidth(),image2.getIconHeight());
}else if(node.getLevel()==5){
this.setIcon(image3);
this.setSize(image3.getIconWidth(),image3.getIconHeight());
} else {
this.setIcon(image1);
this.setSize(image1.getIconWidth(),image1.getIconHeight());
}
return this;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货