在Java Swing中,JTree是一个非常强大的组件,它可以用来表示树形结构数据中的节点,而MySQL则是一个流行的关系型数据库。这篇文章将介绍如何在Java Swing应用程序中使用JTree和MySQL来显示和管理树形结构数据。
首先,我们需要建立一个数据库来存储我们的数据。假设我们要存储一个公司的组织架构,我们可以创建一个名为“company”的数据库,并在其中创建一个名为“employee”的表。
CREATE DATABASE company; USE company; CREATE TABLE employee ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), title VARCHAR(255), manager_id INT );
接下来,我们需要在Java Swing应用程序中创建一个JTree。我们可以使用DefaultMutableTreeNode类来创建一个节点,并将节点添加到树中。
DefaultMutableTreeNode root = new DefaultMutableTreeNode("公司"); DefaultMutableTreeNode hr = new DefaultMutableTreeNode("人力资源部"); DefaultMutableTreeNode it = new DefaultMutableTreeNode("信息技术部"); root.add(hr); root.add(it); JTree tree = new JTree(root);
现在我们需要从MySQL数据库中读取数据,并将其添加到JTree中。我们可以使用JDBC来连接和查询数据库,并使用DefaultMutableTreeNode类来创建节点。
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/company", "root", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM employee"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); String title = rs.getString("title"); int manager_id = rs.getInt("manager_id"); DefaultMutableTreeNode node = new DefaultMutableTreeNode(name + " (" + title + ")"); if (manager_id == 0) { root.add(node); } else { Enumeration e = root.depthFirstEnumeration(); while (e.hasMoreElements()) { DefaultMutableTreeNode n = (DefaultMutableTreeNode)e.nextElement(); if (n.getUserObject().equals(manager_id)) { n.add(node); break; } } } } rs.close(); stmt.close(); conn.close();
代码中的循环遍历所有数据库记录,并创建对应的节点。如果记录的manager_id为0,则将节点添加到根节点下,否则需要在树中搜索管理者节点,并将新节点添加为它的子节点。
最后,我们需要使用JFrame来创建一个窗口,并将JTree添加到其中。
JFrame frame = new JFrame(); frame.add(new JScrollPane(tree)); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); frame.setVisible(true);
现在我们已经创建了一个可以显示和管理树形结构数据的Java Swing应用程序。当数据库中的数据发生变化时,我们只需要重新读取数据并更新JTree即可。