Java中DefaultTableModel的用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

我们曾提到过DefaultTableModel类,并说明了此类是继承AbstractTableModel 抽象类而来,且实现了getColumnCount(),getRowCount()与getValueAt()3

个方法。因此在实际的使用上,DefaultTableModel比AbstractTableModel要来得简单许多,也较常被拿来使用DefaultTableModel内部使用Vector来使用表格的数据,若佻所要显示的表格格式是比较单纯的变化,笔者建议使用DefaultTableModel类会来得方便也简单许多。若佻所要显示的数据模式非常复杂,

例如我们所举的成绩表格外加学生选课信息等,像这类的表格通常显示的信息会因人面异,因此使用AbstractTableModel会比较容易设计些。

下面是DefaultTableModel的构造函数:

DefaultTableModel():建立一个DefaultTableModel,里面没有任何数据. DefaultTableModel(int numRows,int numColumns):建立一个指定行列数的DefaultTableModel.

DefaultTableModel(Object[][] data,Object[] columnNames):

建立一个DefaultTableModel输入数据格式为Object Array.系统会自动调用setDataVector()方法来设置数据。

DefaultTableModel(Object[] columnNames,int numRows):建立一个DefaultTableModel,并具有Column Header名称与行数信息。DefaultTableModel(Vector columnNames,int numRows):

建立一个DefaultTableModel,并具有column Header名称与行数信息。DefaultTableModel(Vector data,Vector columnNames):

建立一个DefaultTableModel,输入数据格式为Vector.系统会自动调用setDataVector()方法来设置数据。

DefaultTableModel类提供相当多好用的方法,如之前我们谈论过的getColumnCount(),getRowCount(),getValueAt(),isCellEditable() setValueAt()等方法,均可直接使用。且DefaultTableModel也提供了addColumn()与addRow()等方法,可让我们随时增加表格的数据。

下面我们就举一个动态增加表格字段的例子:

import java.awt.*;

import java.awt.event.*;

import java.util.Vector;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.table.*;

public class AddRemoveCells implements ActionListener

{

JTable table = null;

DefaultTableModel defaultModel = null;

public AddRemoveCells()

{

JFrame f = new JFrame();

String[] name = {"字段1","字段2","字段3","字段4","字

段5"};

String[][] data = new String[5][5];

int value =1;

for(int i=0; i

{

for(int j=0; j

data[j] = String.valueOf(value++);

}

defaultModel = new DefaultTableModel(data,name);

table=new JTable(defaultModel);

table.setPreferredScrollableViewportSize(new Dimension(400, 80));

JScrollPane s = new JScrollPane(table);

JPanel panel = new JPanel();

JButton b = new JButton("增加行");

panel.add(b);

b.addActionListener(this);

b = new JButton("增加列");

panel.add(b);

b.addActionListener(this);

b = new JButton("删除行");

panel.add(b);

b.addActionListener(this);

b = new JButton("删除列");

panel.add(b);

b.addActionListener(this);

Container contentPane = f.getContentPane();

contentPane.add(panel, BorderLayout.NORTH);

contentPane.add(s, BorderLayout.CENTER);

f.setTitle("AddRemoveCells");

f.pack();

f.setVisible(true);

f.addWindowListener(new WindowAdapter() {

相关文档
最新文档