实现 JTree 工具提示的最佳方式?
由于 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);
}
}