2 louis0531 Louis0531 于 2015.07.06 16:41 提问

<Jtree>,JPanel中添加JLabel显示问题
    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也正常显示。

2个回答

devmiao
devmiao   Ds   Rxr 2015.07.06 21:21

调试下,看看是不是panel嵌套了,所以没找到。

tongyi55555
tongyi55555   2015.07.06 22:18

不知道你的具体环境,从上面的代码看不出你对label3做的操作,只是设置了font.

Csdn user default icon
上传中...
上传图片
插入图片