【问题标题】:JTree TreeCellRenderer not highlighting selectionJTree TreeCellRenderer 不突出显示选择
【发布时间】:2017-03-18 23:38:45
【问题描述】:

我为文件的 JTree 编写了一个树渲染器,它可以在第一次创建树时设置背景颜色,但它不会突出显示选择。

private class CustomTreeCellRenderer extends DefaultTreeCellRenderer{
    @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value,boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus){
        if(value instanceof DefaultMutableTreeNode){
            setText(FileSystemView.getFileSystemView().getSystemDisplayName((File) ((DefaultMutableTreeNode) value).getUserObject()));
            setIcon(FileSystemView.getFileSystemView().getSystemIcon((File) ((DefaultMutableTreeNode) value).getUserObject()));
        }
        super.setBackgroundSelectionColor(Color.BLUE);
        if(selected){
            super.setBackground(Color.gray);
            setForeground(getTextSelectionColor());
        }else{
            super.setBackground(Color.CYAN);
            setForeground(getTextNonSelectionColor());
        }
        this.setOpaque(true);
        return this;
    }
}

添加

super.getTreeCellRendererComponent

解决了这个问题。

【问题讨论】:

    标签: java swing jtree


    【解决方案1】:

    在getTreeCellRendererComponent内部,第一次调用应该是

    super.getTreeCellRendererComponent(arguments);
    

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 2012-12-15
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 2017-09-06
      相关资源
      最近更新 更多