自JTree & TreeModel不直接提供開箱即用的工具提示,您如何看待如何爲JTree提供特定於物品的工具提示?實現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);
}
}
你的答案應該是一個答案,使人們可以在其上進行表決。 – 2008-11-07 15:28:18
DefaultTreeCellRenderer#getTreeCellRendererComponent被稱爲很多,並使這個太重量級可以使東西不能按預期工作。就像應該顯示的工具提示一樣,但不要。覆蓋JTree#getToolTipText(MouseEvent e)僅在需要時調用,因此是更好的解決方案! – NomeN 2013-07-11 16:43:03
當我嘗試這個工具提示沒有出現。 Zarkonnen的答案雖然工作。 – Amber 2016-11-14 22:08:36