Swing/TreeToolTips のバックアップの現在との差分(No.1)
TITLE:JTreeのToolTipsを表示
JTreeのToolTipsを表示
編集者:Terai Atsuhiro~
作成日:2007-06-04
更新日:2024-02-15 (木) 20:18:57
概要
ノード毎に内容の異なるJToolTip
を表示するJTree
を作成します。
Screenshot
Advertisement
概要
JTreeのノードのToolTipsを表示します。#screenshot
サンプルコード
#spanend
#spandel
//tree = new JTree();
#spanend
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
tree = new JTree() {
public String getToolTipText(MouseEvent e) {
@Override public String getToolTipText(MouseEvent e) {
Object o = null;
TreePath path = getPathForLocation(e.getX(), e.getY());
if(path!=null) {
if (Objects.nonNull(path)) {
o = path.getLastPathComponent();
}
return (o==null)?null:o.toString();
return Objects.toString(o, "getToolTipText");
}
};
#spandel
//tree.setCellRenderer(new MyTreeCellRenderer(tree.getCellRenderer()));
#spanend
#spanadd
// tree.setCellRenderer(new MyTreeCellRenderer(tree.getCellRenderer()));
#spanend
ToolTipManager.sharedInstance().registerComponent(tree);
- &jnlp;
- &jar;
- &zip;
解説
上記のサンプルでは、JTree#getToolTipText(MouseEvent)をオーバーライドしてToolTipを表示しています。以下のようなセルレンダラーを使用する方法もあります。解説
-
JTree#getToolTipText(MouseEvent)
メソッドをオーバーライドしてJToolTip
で表示する文字列を変更 - ツールチップ表示を有効にするには
JTree
オブジェクトをToolTipManager
に登録するか、JTree#setToolTipText(...)
メソッドでnull
以外を指定しておく必要がある#spanadd ToolTipManager.sharedInstance().registerComponent(tree); #spanend #spanadd // tree.setToolTipText("non null text"); #spanend #spanadd
- セルレンダラーを使用する別方法
#spanend class MyTreeCellRenderer implements TreeCellRenderer { private final TreeCellRenderer renderer; public MyTreeCellRenderer(TreeCellRenderer renderer) { this.renderer = renderer; } public Component getTreeCellRendererComponent( #spanadd #spanend @Override public Component getTreeCellRendererComponent( JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus) { JComponent c = (JComponent)renderer.getTreeCellRendererComponent( JComponent c = (JComponent) renderer.getTreeCellRendererComponent( tree, value, isSelected, expanded, leaf, row, hasFocus); c.setToolTipText((value==null)?null:value.toString()); c.setToolTipText(Objects.nonNull(value) ? value.toString() : null); return c; } }
#spanend
#spandel
ToolTipManager.sharedInstance().registerComponent(tree);
#spanend
#spandel