繁体   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