Java JTable详解与实例

5星 · 超过95%的资源 需积分: 12 11 下载量 153 浏览量 更新于2024-07-28 3 收藏 89KB DOC 举报
"这篇文档详细介绍了Java中JTable组件的使用方法,包括各种构造函数的解释和示例代码,旨在帮助开发者更好地理解和操作Java表格。" 在Java Swing库中,JTable是一个重要的组件,用于展示二维数据集,常用于创建用户界面中的表格视图。下面我们将深入探讨JTable的使用方法。 1. JTable构造函数 - `JTable()`: 这个构造函数创建了一个新的JTable实例,使用系统默认的`TableModel`。 - `JTable(int numRows, int numColumns)`: 创建一个指定行数和列数的空表格,使用`DefaultTableModel`作为数据模型。 - `JTable(Object[][] rowData, Object[][] columnNames)`: 通过二维数组初始化表格,同时显示列名。 - `JTable(TableModel dm)`: 使用自定义的`TableModel`实例初始化表格。 - `JTable(TableModel dm, TableColumnModel cm)`: 设置数据模型和列模型,同时有默认的选择模型。 - `JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)`: 自定义数据模型、列模型和选择模型。 - `JTable(Vector rowData, Vector columnNames)`: 以Vector对象为数据源创建表格,可以显示列名。 2. 示例:使用Array构造JTable 下面的代码片段展示了如何使用二维数组和字符串数组创建一个简单的JTable: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class SimpleTable { public SimpleTable() { JFrame f = new JFrame(); Object[][] playerInfo = { {"阿呆", new Integer(66), new Integer(32), new Integer(98), new Boolean(false)}, {"阿呆", new Integer(82), new Integer(69), new Integer(128), new Boolean(true)}, }; String[] names = {"姓名", "语文", "数学", "总分", "及格"}; JTable table = new JTable(playerInfo, names); // ... } } ``` 在这个例子中,`playerInfo`是包含数据的二维数组,`names`是列头名称。`JTable(playerInfo, names)`创建了一个表格,其中`playerInfo`用于填充数据,`names`作为列头显示。 3. 自定义行为和外观 - 事件监听:可以通过添加`MouseListener`, `KeyListener`或`ActionListener`等监听器来处理用户的交互事件,例如单元格点击或键盘输入。 - 表格模型:`TableModel`接口允许自定义数据存储和更新逻辑,例如`DefaultTableModel`是一个常用的实现,但也可以实现自己的`TableModel`类。 - 列模型:`TableColumnModel`允许调整列的宽度、隐藏和排序。 - 选择模型:`ListSelectionModel`控制用户选择行的行为,如单选或多选。 4. 其他功能 - 编辑单元格:默认情况下,JTable支持单元格的编辑,可通过`isCellEditable(row, column)`方法控制。 - 渲染和处理单元格:可以使用自定义的`TableCellRenderer`和`TableCellEditor`来改变单元格的显示效果和编辑行为。 - 表格排序:可以使用`TableRowSorter`对表格数据进行排序。 - 表格的滚动:通常将JTable放入`JScrollPane`中,以便在数据过多时提供滚动功能。 Java的JTable组件提供了丰富的功能,可以满足大多数表格展示和用户交互的需求。通过理解其构造函数和核心接口,开发者可以灵活地构建符合项目需求的表格视图。