在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即可。