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