Java Swing JTable深度解析

需积分: 10 1 下载量 120 浏览量 更新于2024-09-12 收藏 31KB DOCX 举报
"JTable是Java Swing中的一个组件,用于创建和展示二维表格数据。它提供了丰富的功能,包括数据编辑、排序、选择等。本讲解将深入解析JTable类及其使用方法,帮助你更好地理解和运用这一组件。" 在Java Swing中,`JTable`是一个重要的组件,用于在GUI应用中展示和操作数据。它继承自`JComponent`,并进一步扩展了`Container`和`JComponent`的功能。`JTable`的核心在于它可以绑定到一个`TableModel`,这个模型负责存储和管理表格的数据。同时,`JTable`还可以与`TableColumnModel`和`ListSelectionModel`配合,分别控制表格的列和选择行为。 首先,了解`JTable`的构造函数是非常关键的。以下是对每个构造函数的简要说明: 1. `JTable()`:创建一个空白的`JTable`,使用系统默认的`DefaultTableModel`。 2. `JTable(int numRows, int numColumns)`:创建指定行数和列数的空表格,同样使用`DefaultTableModel`。 3. `JTable(Object[][] rowData, Object[][] columnNames)`:创建一个表格,显示二维数组中的数据,并可以设置列名。 4. `JTable(TableModel dm)`:使用给定的`TableModel`创建`JTable`,并设置默认的列和选择模式。 5. `JTable(TableModel dm, TableColumnModel cm)`:除了模型外,还指定列模型。 6. `JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)`:完全自定义模型、列模型和选择模型。 7. `JTable(Vector rowData, Vector columnNames)`:使用向量作为数据源创建表格,支持列名显示。 以数组构造方法为例,创建一个简单的`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[] columnNames = {"姓名", "年龄", "身高", "体重", "是否运动员"}; // 使用二维数组和列名创建JTable JTable table = new JTable(playerInfo, columnNames); // 添加到滚动面板 JScrollPane scrollPane = new JScrollPane(table); // 添加到窗口 f.add(scrollPane); // 设置窗口属性 f.setSize(400, 300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } public static void main(String[] args) { new SimpleTable(); } } ``` 在这个例子中,我们创建了一个2行5列的表格,展示了玩家的信息。每个单元格的数据类型可以不同,例如字符串、整数或布尔值。`JTable`会根据数据类型自动处理显示和编辑。 `JTable`的特性还包括: - 数据绑定:`JTable`可以直接绑定到JavaBean或者数据库,实现数据的实时更新。 - 编辑:用户可以通过点击单元格进行数据编辑,也可以通过编程控制编辑行为。 - 表头排序:用户可以点击表头对数据进行升序或降序排序。 - 选择:可以设置单行、多行或全选的模式。 - 事件监听:可以添加各种事件监听器,如`TableModelListener`、`CellEditorListener`等,响应用户的操作。 `JTable`是一个强大而灵活的组件,能够满足各种表格数据展示和交互的需求。通过熟练掌握其构造函数和各种特性,开发者可以在Java Swing应用中创建出功能丰富的表格界面。