DefaultListModel 创建 JTable

来源:互联网 发布:程序编程入门 编辑:程序博客网 时间:2024/05/18 02:33

DefaultTableMode 

DefaultTableMode 类 继 承 AbstractTableModel 抽象类而来,且实现了 getColumnCount() 、
getRowCount()与 getValueAt()等 3 个方法。因此在实际的使用上, DefaultTableModel 比 AbstractTableModel
要来得简单许多。在 DefaultTableMode 中,常常使用 Vector(向量)来填充表格中的数据。

import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class TestDefaultTableModel extends JFrame {
Vector colsv = new Vector();          //创建一个向量
JTable table;                //声明一个 JTable 对象
DefaultTableModel tablemodel;          //创建 DefaultTableModel 模型
public TestDefaultTableModel() {   
this.setLayout(new FlowLayout());
//  将 String 对象"学号","姓名","生日","数学"加入向量中用以显示表头
colsv.add("学号");         
colsv.add("姓名");
colsv.add("生日");
colsv.add("数学");
colsv.add("英语");
tablemodel = new DefaultTableModel(new Vector(), colsv);  //实例化表格模型,列值为向量 colsv
String str = "select * from stu_info";
TestDB db = new TestDB();
ResultSet rs = db.query(str);        //执行查询操作
//   将查询出的结果集中的值放到 vector/
Vector value = new Vector();
try {
while (rs.next()) {          //循环遍历结果集 rs 中的记录
Vector vc = new Vector();      //创建向量对象
vc.add(rs.getString(1));      //将从当前记录中获得的相应字段的值添加到向量中
vc.add(rs.getString(2));
vc.add(rs.getString(3));
vc.add(rs.getString(4));
vc.add(rs.getString(5));
value.add(vc);
}
tablemodel.setDataVector(value, colsv);  //在表格中写入新的行,其值为向量 value
} catch (SQLException e) {
e.printStackTrace();
}
table = new JTable(tablemodel);      //使用 tablemodel 创建表对象
this.add(new JScrollPane(table));      //将表格添加到滚动面板中
this.setSize(500, 300);          //设置窗体大小
this.setVisible(true);            //使窗体可见
//  设置监听器,关闭窗口后,程序结束
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

//主程序

public static void main(String[] args) {
new TestDefaultTableModel();
}

0 0
原创粉丝点击