JTreeのToolTipsを表示
Total: 9508
, Today: 2
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
ノード毎に内容の異なるJToolTip
を表示するJTree
を作成します。
Screenshot
Advertisement
サンプルコード
tree = new JTree() {
@Override public String getToolTipText(MouseEvent e) {
Object o = null;
TreePath path = getPathForLocation(e.getX(), e.getY());
if (Objects.nonNull(path)) {
o = path.getLastPathComponent();
}
return Objects.toString(o, "getToolTipText");
}
};
// tree.setCellRenderer(new MyTreeCellRenderer(tree.getCellRenderer()));
ToolTipManager.sharedInstance().registerComponent(tree);
View in GitHub: Java, Kotlin解説
JTree#getToolTipText(MouseEvent)
メソッドをオーバーライドしてJToolTip
で表示する文字列を変更- ツールチップ表示を有効にするには
JTree
オブジェクトをToolTipManager
に登録するか、JTree#setToolTipText(...)
メソッドでnull
以外を指定しておく必要があるToolTipManager.sharedInstance().registerComponent(tree); // tree.setToolTipText("non null text");
- セルレンダラーを使用する別方法
class MyTreeCellRenderer implements TreeCellRenderer { private final TreeCellRenderer renderer; public MyTreeCellRenderer(TreeCellRenderer renderer) { this.renderer = renderer; } @Override public Component getTreeCellRendererComponent( JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus) { JComponent c = (JComponent) renderer.getTreeCellRendererComponent( tree, value, isSelected, expanded, leaf, row, hasFocus); c.setToolTipText(Objects.nonNull(value) ? value.toString() : null); return c; } }