Java Swing实战:JTable与JTree组件详解及实例

9 下载量 82 浏览量 更新于2024-08-31 收藏 276KB PDF 举报
"Java Swing中的表格(JTable)和树(JTree)组件是用于构建图形用户界面的重要元素。本文深入探讨了这两个组件的基本概念、常用方法以及实战代码示例,旨在帮助开发者更好地理解和应用它们。" 在Java Swing中,`JTable`和`JTree`组件是展示数据的有效方式。`JTable`主要用于展示二维结构的数据,而`JTree`则适用于以层级结构展示数据。 ### JTable组件 #### 基本概念 `JTable`是一个组件,它允许你以表格形式展示数据,支持行和列的操作,如添加、删除和编辑。它提供了对大量数据的便捷可视化,使得用户能够轻松地浏览和操作数据。 #### 常用构造方法 1. `JTable()` - 创建一个使用系统默认模型的空表格。 2. `JTable(int numRows, int numColumns)` - 创建具有指定行数和列数的空表格,使用`DefaultTableModel`。 3. `JTable(Object[][] rowData, Object[][] columnNames)` - 使用给定的二维数据数组和列名创建表格。 4. `JTable(TableModel dm)` - 使用提供的`TableModel`实例创建表格,`TableModel`负责管理表格的数据和结构。 #### 常用方法 - `getModel()` - 获取表格的数据模型。 - `setModel(TableModel model)` - 设置新的数据模型。 - `getValueAt(int row, int column)` - 获取指定单元格的值。 - `setValueAt(Object value, int row, int column)` - 设置指定单元格的值。 - `addColumn(Object columnIdentifier)` - 添加新列。 - `removeColumn(Object column)` - 删除指定列。 - `addRow(Vector rowData)` - 添加一行数据。 - `removeRow(int row)` - 删除指定行。 #### 综合案例 下面的代码展示了如何创建一个简单的`JTable`: ```java public class JTableDemo1 extends JFrame { JTable table; JScrollPane scrollPane; DefaultTableModel tableModel; public JTableDemo1() { super(); setTitle("表格模型与表格"); scrollPane = new JScrollPane(); String[] columnNames = {"A", "B", "C"}; String[][] tableValues = {{"A1", "B1", "C1"}, {"A2", "B2", "C2"}, {"A3", "B3", "C3"}, {"A4", "B4", "C4"}}; tableModel = new DefaultTableModel(tableValues, columnNames); table = new JTable(tableModel); } } ``` 在这个例子中,我们首先定义了表格的列名和数据,然后使用`DefaultTableModel`创建了数据模型,并将这个模型应用于`JTable`。 ### JTree组件 `JTree`组件用于显示层次化的数据,如文件系统的目录结构。每个节点都可以展开或折叠,显示其子节点。 #### 基本概念 `JTree`提供了一种以树形结构展示数据的方式,用户可以通过单击节点来展开或折叠节点的子项。 #### 常用构造方法 1. `JTree()` - 创建一个空的`JTree`,使用默认的`DefaultTreeModel`。 2. `JTree(TreeModel model)` - 使用提供的`TreeModel`实例创建树。 3. `JTree(Object[] array)` - 从给定的数组创建一个`JTree`,数组的每个元素都是一个树节点。 #### 常用方法 - `getModel()` - 获取树的数据模型。 - `setModel(TreeModel model)` - 设置新的数据模型。 - `getSelectionPath()` - 获取当前选中的节点路径。 - `expandPath(TreePath path)` - 展开指定的节点路径。 - `collapsePath(TreePath path)` - 折叠指定的节点路径。 #### 实例 创建一个简单的`JTree`可以如下进行: ```java public class JTreeDemo1 extends JFrame { JTree tree; public JTreeDemo1() { super(); setTitle("JTree 示例"); DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点"); DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("子节点1"); DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("子节点2"); root.add(child1); root.add(child2); tree = new JTree(root); } } ``` 在这个例子中,我们创建了一个简单的树结构,根节点有两个子节点。 总结来说,`JTable`和`JTree`组件是Java Swing UI设计中不可或缺的部分,它们分别用于展示二维表格数据和层级结构数据,通过灵活的数据模型和丰富的API,开发者可以根据需求实现各种复杂的用户界面功能。