public java.awt.Component getTreeCellRendererComponent(JTree tree,
Object value,
boolean selected,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) {
java.awt.Component component = null;
if(selected) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
if(true){label1.setIcon(lockiImageIcon);}
ProductAtributeNodeInfo nodeInfo = (ProductAtributeNodeInfo) node.getUserObject();
String title = nodeInfo.toString();
label2.setText(title);
label2.setFont(font.deriveFont(Font.BOLD));
label3.setFont(font.deriveFont(Font.BOLD, CHECKMARK_FONT_SIZE));
component = fSelectedComponent;
}
return component;
}
代码如上,重写了getTreeCellRendererComponent方法,三个Label之前定义好了。label1是个条件判断。当我选中某个节点的时候,且label1的条件为true,应该三个都显示。但是页面上label3不显示。(当我鼠标从JTree上移开再移动进来的时候,label3显示)。且我不添加label1的时候。label3也正常显示。