2008年1月1日火曜日

JAVA6 Swing JTreeでヒントの表示



1.JTreeをツールチップマネージャーに登録します。
2.セルレンダラを設定します。
3.セルレンダラのgetToolTipText(MouseEvent event)を実装します。


import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.ToolTipManager;
import javax.swing.tree.DefaultTreeCellRenderer;


public class JTreeHintTest {

/**
* @param args
*/
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(200, 200);
JTree t = new MyTree();
ToolTipManager.sharedInstance().registerComponent(t); // 1.JTreeをツールチップマネージャーに登録します。
t.setCellRenderer(new MyRendrer()); // 2.セルレンダラを設定します。
f.add(t);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

class MyRendrer extends DefaultTreeCellRenderer {
// 3.セルレンダラを設定します。
@Override
public String getToolTipText(MouseEvent event) {
return getText();
}
}

class MyTree extends JTree {
@Override
public String getToolTipText(MouseEvent event) {
return super.getToolTipText(event);
}
}



■ 解説
1.JTreeをツールチップマネージャーに登録します。
ヒントを表示するには、まずツールチップマネージャーにコンポーネントを登録する必要があります。

2.セルレンダラを設定します。
ヒントに表示する文字列は、セルレンダラのgetToolTipText(MouseEvent event)から取得されます。
よって、getToolTipText(MouseEvent event)を実装したセルレンダラをJTreeに設定する必要があります。

3.セルレンダラのgetToolTipText(MouseEvent event)を実装します。
2.と同じなので割愛。

0 件のコメント: