由于 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);
}
}
See 获取工具提示文本 http://docs.oracle.com/javase/7/docs/api/javax/swing/JTree.html#getToolTipText(java.awt.event.MouseEvent)在 JTree 上。这应该允许您根据悬停在树中的内容来显示工具提示。 (不过,请阅读文档,您需要使用 ToolTipManager 注册 JTree。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)