簡體   English   中英

這個彩色的JTree有什么問題? (自定義渲染器問題)

[英]What's wrong with this colored JTree? (custom renderer problem)

我想編寫自定義TreeCellRenderer以具有不同顏色的根,節點和葉子。

這是我的代碼:

tree.setCellRenderer(new DefaultTreeCellRenderer() {

    @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
        {

            DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;

            if (node.isRoot()) {
                super.setBackground(Color.red);
            } else if (node.getChildCount() > 0) {
                super.setBackground(Color.yellow);
            } else if (leaf) {
                super.setBackground(Color.green);
            }
            return super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);

        }

    }
});

不幸的是,只有選定的節點會更改顏色。

我究竟做錯了什么? TIA尋求幫助。

//更新:我關聯了我的代碼,但沒有幫助。

也許您的意思是setBackgroundColor()而不是setBackgroundSelectionColor() ,顧名思義,它僅設置所選狀態的顏色。

您對super使用超級輕松[此機智的話要歸功於Carl Smotricz ]。

為什么設置顏色之前調用super.getTreeCellRendererComponent(並最終返回此顏色)? 嘗試先設置顏色,然后返回super.getTreeCellRendererComponent返回的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM