=====1自定义 AlarmDefaultMutableTreeNode extends DefaultMutableTreeNode=====
import java.io.Serializable;
import javax.swing.tree.DefaultMutableTreeNode;
public class AlarmDefaultMutableTreeNode extends DefaultMutableTreeNode implements Serializable {
private static final long serialVersionUID = 1L;
private int nodeType;
public AlarmDefaultMutableTreeNode() {
super();
// TODO Auto-generated constructor stub
}
public AlarmDefaultMutableTreeNode(Object arg0, boolean arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public AlarmDefaultMutableTreeNode(Object arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public void setTreeNodeType(int type) {
this.nodeType = type;
}
public int getTreeNodeType() {
return this.nodeType;
}
}
=====2自定义 AlarmDefaultTreeCellRenderer extends DefaultTreeCellRenderer =========
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
/**
* @author hcc
*
*/
public class AlarmDefaultTreeCellRenderer extends DefaultTreeCellRenderer {
private static final long serialVersionUID = 1L;
public AlarmDefaultTreeCellRenderer() {
super();
}
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
// TODO Auto-generated method stub
super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
AlarmDefaultMutableTreeNode treeNode = (AlarmDefaultMutableTreeNode)value;
int type = treeNode.getTreeNodeType();
switch (type) {
case 1:
this.setIcon(new ImageIcon(getClass().getResource("/images/072.gif")));
break;
case 2:
this.setIcon(new ImageIcon(getClass().getResource("/images/zoomup.gif")));
break;
case 3:
this.setIcon(new ImageIcon(getClass().getResource("/images/trend.gif")));
break;
default:
break;
}
return this;
}
}
=====3 应用 ========
EpProvince province = initFacilities();
AlarmDefaultMutableTreeNode top = new AlarmDefaultMutableTreeNode(
province.getProvinceName());
AlarmDefaultMutableTreeNode zoneNode = null;
AlarmDefaultMutableTreeNode indNode = null;
AlarmDefaultMutableTreeNode facNode = null;
Set<EpZone> zones = province.getEpZones();
for (EpZone zone : zones) {
zoneNode = new AlarmDefaultMutableTreeNode(zone.getZoneName());
zoneNode.setTreeNodeType(1);
top.add(zoneNode);
Set<EpIndustry> industrys = zone.getEpIndustries();
for (EpIndustry industry : industrys) {
indNode = new AlarmDefaultMutableTreeNode(industry.getIndustryName());
indNode.setTreeNodeType(2);
zoneNode.add(indNode);
Set<EpFacilities> facilities = industry.getEpFacilitieses();
for (EpFacilities fac : facilities) {
facNode = new AlarmDefaultMutableTreeNode(fac
.getFacilitiesName());
facNode.setTreeNodeType(3);
indNode.add(facNode);
}
}
}
jTree = new JTree(top) {
public Insets getInsets() {
return new Insets(5, 5, 5, 5);
}
};
jTree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
TreePath newLeadPath = e.getNewLeadSelectionPath();
}
});
jTree.setCellRenderer(new AlarmDefaultTreeCellRenderer());
jTree.setEditable(false);
jScrollPane1.setViewportView(jTree);