// Example from http://www.crionics.com/products/opensource/faq/swing_ex/SwingExamples.html
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
/**
* @version 1.0 11/09/98
*/
class ToolTipTreeNode extends DefaultMutableTreeNode {
private String toolTipText;
public ToolTipTreeNode(String str, String toolTipText) {
super(str);
this.toolTipText = toolTipText;
}
public String getToolTipText() {
return toolTipText;
}
}
public class ToolTipTreeExample extends JFrame {
public ToolTipTreeExample() {
super("ToolTipTreeExample");
String[][] strs = { { "swing", "boat" }, // 0
{ "platf", "paltform" }, // 1
{ "basic", "fortran" }, // 2
{ "metal", "heavy" }, // 3
{ "JTree", "three" } }; // 4
ToolTipTreeNode[] nodes = new ToolTipTreeNode[strs.length];
for (int i = 0; i < strs.length; i++) {
nodes[i] = new ToolTipTreeNode(strs[i][0], strs[i][1]);
}
nodes[0].add(nodes[1]);
nodes[1].add(nodes[2]);
nodes[1].add(nodes[3]);
nodes[0].add(nodes[4]);
JTree tree = new JTree(nodes[0]) {
public String getToolTipText(MouseEvent evt) {
if (getRowForLocation(evt.getX(), evt.getY()) == -1)
return null;
TreePath curPath = getPathForLocation(evt.getX(), evt.getY());
return ((ToolTipTreeNode) curPath.getLastPathComponent())
.getToolTipText();
}
};
tree.setToolTipText("");
JScrollPane sp = new JScrollPane(tree);
getContentPane().add(sp, BorderLayout.CENTER);
}
public static void main(String args[]) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception evt) {}
ToolTipTreeExample frame = new ToolTipTreeExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(300, 150);
frame.setVisible(true);
}
}