树组件
JTree类的对象称为树组件,是比较常用的组件之一
DefaultMutableTreeNode 结点
//树组件都是由结点组成的
可以用DefaultMutableTreeNode
类创建对象//因为实现了MutableTreeNode
接口
DefaultMutableTreeNode(Object userObject)
//默认可以有子结点,使用add()
方法添加DefaultMutableTreeNode(Object userObject,boolean allowChildren)
//可以设置是否拥有子结点
树上的TreeSelectionEvent事件
addTreeSelectionListen(TreeSelectionListener listener)
//树组件的监视器public void getvalueChange(TreeSelectionEvent e)
//接口中的方法
另外树可以调用getLastSelectedPathComponent()
//获取选中的节点
例子
创建一个窗口自己做监视器
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.*;
public class myTreeWindow extends JFrame implements TreeSelectionListener {
JTree jTree;
JTextArea jTextArea;
myTreeWindow(){
setBounds(300,300,400,400);
setTitle("树组件");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
init();
validate();
}
void init(){
DefaultMutableTreeNode root = new DefaultMutableTreeNode("产品");
DefaultMutableTreeNode TV = new DefaultMutableTreeNode("电视机");
DefaultMutableTreeNode tv1 = new DefaultMutableTreeNode(new product("小米电视机",2999.00));
DefaultMutableTreeNode tv2 = new DefaultMutableTreeNode(new product("大米电视机",3999.00));
DefaultMutableTreeNode PHONE = new DefaultMutableTreeNode("手机");
DefaultMutableTreeNode phone1 = new DefaultMutableTreeNode(new product("iPhone 11",4999.00));
DefaultMutableTreeNode phone2 = new DefaultMutableTreeNode(new product("iPhone SE",2999.00));
TV.add(tv1);
TV.add(tv2);
PHONE.add(phone1);
PHONE.add(phone2);
root.add(TV);
root.add(PHONE);
setLayout(new GridLayout(1,2)); //一行两列的布局
jTree = new JTree(root); //将根放到树中
jTree.