簡體   English   中英

如何在TreeCellRenderer中設置工具提示?

[英]How to set tooltip in TreeCellRenderer?

我一直堅持將工具提示設置為添加到JTree節點中的JPanel之一。 這個問題可能類似於JTree節點的可更改工具提示,但並不完全相同。

我還使用了填充了一些(自定義)節點的JTree。 每個節點都包含一個復選框,一個顏色框(JPanel)和節點路徑。 我正在實現TreeCellRenderer。 我沒有在下面的代碼中發布正在添加到節點的代碼,因為我認為這是沒有必要的。

以下是我的代碼的一部分:

    public class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer {

        private static final long serialVersionUID = 4025435851260573240L;

        CheckTreeSelectionModel selectionModel; 
        private TreeCellRenderer delegate; 
        TristateCheckBox checkBox = new TristateCheckBox();
        JPanel panel = new JPanel();

        public CheckTreeCellRenderer(TreeCellRenderer delegate, CheckTreeSelectionModel selectionModel){
            this.delegate = delegate;
            this.selectionModel = selectionModel;

            setLayout(new BorderLayout()); 
            setOpaque(false); 
            checkBox.setOpaque(false);
        }

        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){
            Component renderer = delegate.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
            panel.setToolTipText("Hello");
            removeAll();
        add(checkBox, BorderLayout.WEST);
        add(panel, BorderLayout.CENTER);
        add(renderer, BorderLayout.EAST);

        return this;
    }
}

如何為添加到節點的JPanel設置工具提示?

看看JTree.getToolTipText的文檔:

注意:為了使JTree正確顯示其渲染器的工具提示,JTree必須是在ToolTipManager中注冊的組件。 這可以通過調用ToolTipManager.sharedInstance()。registerComponent(tree)來完成。 這不會自動完成!

這將解決它。

暫無
暫無

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

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