Swing之JTable详解 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.JTabel ### Swing之JTable详解 #### 类层次结构图 在Swing框架中,`JTable`是构建GUI应用程序中表格的主要组件。它继承自`JComponent`类,这使得`JTable`能够支持丰富的图形用户界面功能。下面展示了`JTable`的类层次结构: 1. `java.lang.Object` - `java.awt.Component`: 提供了基本的可视化组件功能。 - `java.awt.Container`: 继承自`Component`,提供了容器功能,可以包含其他组件。 - `javax.swing.JComponent`: 扩展了`Container`,提供了更高级的GUI特性。 - **`javax.swing.JTable`**: 专门用于展示表格数据的组件。 #### JTable构造函数详解 `JTable`提供多种构造函数,可以根据不同的需求灵活创建表格。 1. `JTable()`: 构建一个新的`JTable`,并使用系统默认的模型(通常是`DefaultTableModel`)。 2. `JTable(int numRows, int numColumns)`: 创建一个指定行数和列数的空表格,同样使用`DefaultTableModel`作为数据模型。 3. `JTable(Object[][] rowData, Object[] columnNames)`: 使用二维数组`rowData`表示表格的数据,一维数组`columnNames`表示列名,构建表格。 4. `JTable(TableModel dm)`: 根据传入的`TableModel`对象构建表格,可以使用自定义的数据模型。 5. `JTable(TableModel dm, TableColumnModel cm)`: 根据传入的`TableModel`和`TableColumnModel`对象构建表格,可以分别自定义数据模型和列模型。 6. `JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)`: 根据传入的`TableModel`、`TableColumnModel`和`ListSelectionModel`对象构建表格,可以自定义数据模型、列模型和选择模式。 7. `JTable(Vector rowData, Vector columnNames)`: 使用`Vector`来表示表格的数据和列名,构建表格。 #### 示例代码解析 以下是一个简单的示例,演示了如何使用数组构造`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实例 JTable table = new JTable(playerInfo, Names); table.setPreferredScrollableViewportSize(new Dimension(550, 30)); // 将JTable放入JScrollPane中,以实现滚动功能 JScrollPanel scrollPane = new JScrollPane(table); f.getContentPane().add(scrollPane, BorderLayout.CENTER); f.setTitle("SimpleTable"); f.pack(); f.setVisible(true); // 修改:使用setVisible(true)代替show() f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new SimpleTable(); } } ``` #### 行标题与行对象 `JTable`由两部分组成:**行标题**(`ColumnHeader`)与**行对象**(`ColumnObject`)。可以通过调用`JTable.getTableHeader()`方法获取行标题。在上述示例中,`JTable`被放置在`JScrollPane`中,这样可以确保`ColumnHeader`与`ColumnObject`都完整地显示出来。 如果直接将`JTable`添加到`JFrame`中而没有使用`JScrollPane`,`ColumnHeader`将不会显示。为了解决这一问题,可以显式地添加`ColumnHeader`到`JFrame`中: ```java // 创建JTable实例 JTable table = new JTable(playerInfo, Names); // 显式添加ColumnHeader f.getContentPane().add(table.getTableHeader(), BorderLayout.NORTH); ``` 通过这种方式,即使没有使用`JScrollPane`,`ColumnHeader`也能正确显示。以上就是关于Swing中`JTable`的详细介绍及其常见应用场景。
剩余15页未读,继续阅读
- WuBill2013-03-10对JTable介绍得比较细,还不错
- 一展一2018-11-20超级好用的,特别详细,很实用
- healthsunny2013-04-28讲解的还算详细
- 粉丝: 18
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助