Swing 示例 - 创建树
以下示例展示了如何在 Java Swing 应用程序中创建树。
我们使用以下 API。
JTree(root) − 创建树。
DefaultMutableTreeNode() − 创建树节点。
DefaultMutableTreeNode().add(node) − 将树节点添加到树节点。
示例
import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; public class SwingTester { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public SwingTester(){ prepareGUI(); } public static void main(String[] args){ SwingTester swingControlDemo = new SwingTester(); swingControlDemo.showTableDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java Swing Examples"); mainFrame.setSize(500,700); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showTableDemo(){ headerLabel.setText("Control in action: JTree"); // 创建一个根树项作为部门 DefaultMutableTreeNode department = new DefaultMutableTreeNode("Department"); //创建其他树项作为部门名称 DefaultMutableTreeNode salesDepartment = new DefaultMutableTreeNode("Sales"); DefaultMutableTreeNode marketingDepartment = new DefaultMutableTreeNode("Marketing"); DefaultMutableTreeNode manufacturingDepartment = new DefaultMutableTreeNode("Manufacturing"); //创建其他树项作为员工 DefaultMutableTreeNode employee1 = new DefaultMutableTreeNode("Robert"); DefaultMutableTreeNode employee2 = new DefaultMutableTreeNode("Joe"); DefaultMutableTreeNode employee3 = new DefaultMutableTreeNode("Chris"); //将员工添加到销售部门 salesDepartment.add(employee1); salesDepartment.add(employee2); salesDepartment.add(employee3); //创建其他树项作为员工 DefaultMutableTreeNode employee4 = new DefaultMutableTreeNode("Mona"); DefaultMutableTreeNode employee5 = new DefaultMutableTreeNode("Tena"); //将员工添加到市场部门 marketingDepartment.add(employee4); marketingDepartment.add(employee5); //创建其他树项作为员工 DefaultMutableTreeNode employee6 = new DefaultMutableTreeNode("Rener"); DefaultMutableTreeNode employee7 = new DefaultMutableTreeNode("Linda"); //将员工添加到销售部门 manufacturingDepartment.add(employee6); manufacturingDepartment.add(employee7); //将部门添加到部门项目中 department.add(salesDepartment); department.add(marketingDepartment); department.add(manufacturingDepartment); //创建以部门为根节点的树 JTree tree = new JTree(department); JScrollPane treeView = new JScrollPane(tree); controlPanel.add(treeView); mainFrame.setVisible(true); } }
输出
