当前位置:  开发笔记 > 编程语言 > 正文

实现JTree工具提示的最佳方法是什么?

如何解决《实现JTree工具提示的最佳方法是什么?》经验,为你挑选了1个好方法。

由于JTree和TreeModel不提供开箱即用的工具提示,您如何看待,为JTree提供特定于项目的工具提示的最佳方法是什么?

编辑:(之后回答我自己的问题.)

@Zarkonnen:感谢getTooltipText的想法.

我发现了覆盖DefaultTreeCellRenderer的另一种(可能还是更好的)方法并且想要分享它:

public class JTreeWithToolTips {
    private static class OwnRenderer extends DefaultTreeCellRenderer {
        @Override
        public Component getTreeCellRendererComponent(JTree tree, Object value,
                boolean sel, boolean expanded, boolean leaf, int row,
                boolean hasFocus) {
            setToolTipText("foobar" + row);
            return super.getTreeCellRendererComponent(tree, value, sel,
                    expanded, leaf, row, hasFocus);
        }
    }

    public static void main(String[] args) {
        JTree tree = new JTree(new Object[] { "foo", "bar", "foobar" });
        tree.setCellRenderer(new OwnRenderer());
        ToolTipManager.sharedInstance().registerComponent(tree);

        JFrame frame = new JFrame();
        frame.getContentPane().add(tree);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Zarkonnen.. 15

请参阅JTree上的getTooltipText.这应该允许您根据树中悬停的内容显示工具提示.(但是,请阅读文档,您需要使用ToolTipManager注册JTree.)



1> Zarkonnen..:

请参阅JTree上的getTooltipText.这应该允许您根据树中悬停的内容显示工具提示.(但是,请阅读文档,您需要使用ToolTipManager注册JTree.)


+1表示您需要注册`ToolTipManager`.即使它在文档中,也很容易被遗漏.
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有