引用:https://blog.youkuaiyun.com/u013506294/article/details/51320193
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
public class TreeDemo {
public static void main(String[] args) {
// 创建没有父节点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。
// public DefaultMutableTreeNode(Object userObject)
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("AAA");
node1.add(new DefaultMutableTreeNode(new User("A1")));
node1.add(new DefaultMutableTreeNode(new User("A2")));
node1.add(new DefaultMutableTreeNode(new User("A3")));
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("BBB");
node2.add(new DefaultMutableTreeNode(new User("B1")));
node2.add(new DefaultMutableTreeNode(new User("B2")));
node2.add(new DefaultMutableTreeNode(new User("B3")));
DefaultMutableTreeNode top = new DefaultMutableTreeNode("C");
top.add(new DefaultMutableTreeNode(new User("C1")));
top.add(node1);
top.add(node2);
final JTree tree = new JTree(top);
JFrame f = new JFrame("JTreeDemo");
f.add(tree);
f.setSize(300, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加选择事件
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (node == null) {
return;
}
Object object = node.getUserObject();
if (node.isLeaf()) {
User user = (User) object;
System.out.println("你选择了:" + user.toString());
}
}
});
}
}
class User {
private String name;
public User(String n) {
name = n;
}
// 重点在toString,节点的显示文本就是toString
public String toString() {
return name;
}
}