jtable的表格模式有两种,分别是:DefaultTableModel和AbstractTableModel。有什么区别
时间: 2023-06-05 08:06:04 浏览: 214
DefaultTableModel是一个基于向量(Vector)和哈希表(Hashtable)的实现,它可以提供自动排序、筛选等功能,适用于数据变化频繁的表格。而AbstractTableModel是一个抽象类,需要子类实现其中的方法,适用于自定义数据模型。简而言之,DefaultTableModel是一种功能更完善的表格模式,而AbstractTableModel更加灵活可扩展。
相关问题
Jtable组件和表格模型
JTable是Swing组件之一,用于显示表格数据,它依赖于表格模型来管理数据。
表格模型是一个接口,定义了管理表格数据的方法。它定义了以下方法:
1. int getRowCount():返回表格中的行数。
2. int getColumnCount():返回表格中的列数。
3. Object getValueAt(int row, int col):返回指定行和列的单元格的值。
4. void setValueAt(Object value, int row, int col):设置指定行和列的单元格的值。
5. String getColumnName(int col):返回指定列的名称。
6. Class<?> getColumnClass(int col):返回指定列的数据类型。
表格模型有两种实现方式:DefaultTableModel和AbstractTableModel。
DefaultTableModel是TableModel接口的默认实现。它使用二维数组来存储表格数据,可以通过添加行和列来修改表格数据。
AbstractTableModel是一个抽象类,它提供了TableModel接口的基本实现。它使用列表存储表格数据,可以通过添加、删除、修改行和列来修改表格数据。它需要实现getRowCount()、getColumnCount()、getValueAt()、setValueAt()等方法来管理数据。
总之,表格模型是管理表格数据的核心,而JTable是用来显示表格数据的组件。您可以使用不同的表格模型来实现不同的表格数据管理方式。
DefaultTableModel
DefaultTableModel是Java Swing中用来表示表格数据的一个模型类。它继承自AbstractTableModel并且实现了TableModel接口。使用它可以方便地创建一个表格模型并且提供了一些基本的表格操作,如添加、删除和修改行、列等。
创建一个DefaultTableModel对象的方法如下:
```
String[] columnNames = {"姓名", "年龄", "性别"};
Object[][] data = {{"张三", 20, "男"},{"李四", 22, "女"}};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
```
使用DefaultTableModel对象创建一个JTable:
```
JTable table = new JTable(model);
```
使用DefaultTableModel的一些常用的方法:
- addRow(Object[] rowData):向表格最后添加一行数据
- insertRow(int row, Object[] rowData):在表格第row行插入一行数据
- removeRow(int row):删除表格第row行数据
- setValueAt(Object aValue, int row, int column):修改表格第row行第column列的数据
- getRowCount():获取表格的行数
- getColumnCount():获取表格的列数
需要注意的是,当数据改变时需要调用fireTableDataChanged()来通知JTable更新。
示例:
```
model.addRow(new Object[]{"王五", 25, "男"});
model.removeRow(1);
model.setValueAt("女", 0, 2);
model.fireTableDataChanged();
```
阅读全文