Swing/TreeToolTips のバックアップ差分(No.12)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/TreeToolTips へ行く。
- 1 (2007-06-05 (火) 19:46:36)
- 2 (2012-05-16 (水) 12:50:22)
- 3 (2013-02-05 (火) 17:23:41)
- 4 (2014-06-04 (水) 21:50:33)
- 5 (2014-10-29 (水) 01:37:56)
- 6 (2014-11-19 (水) 02:04:59)
- 7 (2015-12-27 (日) 23:06:38)
- 8 (2016-08-18 (木) 12:41:37)
- 9 (2017-10-07 (土) 18:01:10)
- 10 (2019-04-17 (水) 18:58:34)
- 11 (2021-01-27 (水) 21:19:37)
- 12 (2024-01-03 (水) 02:09:44)
- 13 (2024-02-15 (木) 20:18:57)
- 追加された行はこの色です。
- 削除された行はこの色です。
---
category: swing
folder: TreeToolTips
title: JTreeのToolTipsを表示
tags: [JTree, JToolTip, ToolTipManager, TreeCellRenderer]
author: aterai
pubdate: 2007-06-04T19:46:36+09:00
description: ノード毎に内容の異なるJToolTipを表示するJTreeを作成します。
image: https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTWQe1RL2I/AAAAAAAAAo8/6HFqbUb3UZ8/s800/TreeToolTips.png
---
* 概要 [#summary]
ノード毎に内容の異なる`JToolTip`を表示する`JTree`を作成します。
#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTWQe1RL2I/AAAAAAAAAo8/6HFqbUb3UZ8/s800/TreeToolTips.png)
* サンプルコード [#sourcecode]
#code(link){{
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);
}}
* 解説 [#explanation]
上記のサンプルでは、`JTree#getToolTipText(MouseEvent)`メソッドをオーバーライドして`JToolTip`で表示する文字列を変更しています。
ツールチップ表示を有効にするには、`JTree`オブジェクトを`ToolTipManager`に登録するか、`JTree#setToolTipText(...)`メソッドで`null`以外を指定しておく必要があります。
#code{{
ToolTipManager.sharedInstance().registerComponent(tree);
// tree.setToolTipText("dummy");
}}
----
- セルレンダラーを使用する別方法
#code{{
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;
}
}
}}
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JTree.html#getToolTipText-java.awt.event.MouseEvent- JTree#getToolTipText() (Java Platform SE 8)]
* コメント [#comment]
#comment
#comment