我搞了几天,对网上的代码的改写
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
import java.sql.*;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class DBTableModel
    extends AbstractTableModel {
  protected Vector data;
  protected Vector columnNames;
  protected String dataString;
  private ResultSet rs;
  private Statement stmt;
  private ResultSetMetaData rsmd;  public DBTableModel(ResultSet rsData) {
    rs = rsData;
    initVectors();
  }  public DBTableModel(ResultSet rsData, Vector ocolumnNames) {
    //可以使用外边递进来的列标题
    columnNames = ocolumnNames;
    rs = rsData;
    initVectors();
  }  public void initVectors() {
    String aLine;
    if (data == null) {
      data = new Vector();
    }
    else {
      data.clear();
    }
    try {
      rsmd = rs.getMetaData();
    }
    catch (Exception e) {
      System.out.println(e);
    }
    if (columnNames == null) {
      columnNames = new Vector();
      try {
        // extract column names        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
          columnNames.addElement(rsmd.getColumnName(i));
        }
      }
      catch (Exception e) {
        System.out.println(e);
      }
    }    // extract data
    try {
      while (rs.next()) {
        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
          if (rs.getObject(i) != null) {
            data.addElement(rs.getObject(i).toString());
          }
          else {
            data.addElement("");
          }
        }
      }
    }
    catch (Exception e) {
      System.out.println(e);
    }
  }  public int getRowCount() {
    return data.size() / getColumnCount();
  }  public int getColumnCount() {
    return columnNames.size();
  }  public String getColumnName(int columnIndex) {
    String colName = "";
    try {
      if (columnIndex <= getColumnCount()) {
        colName = (String) columnNames.elementAt(columnIndex);
      }
    }
    catch (Exception r) {
      System.out.println(r);
    }
    return colName;
  }  public Class getColumnClass(int columnIndex) {
    return String.class;
  }  public boolean isCellEditable(int rowIndex, int columnIndex) {
    return false;
  }  public Object getValueAt(int rowIndex, int columnIndex) {
    try {
      int i = rowIndex * getColumnCount() + columnIndex;
      return (String) data.elementAt(i);
    }
    catch (Exception r) {
      return "";
    }
  }  public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    try {
      int i = rowIndex * getColumnCount() + columnIndex;
      data.setElementAt(aValue, i);
    }
    catch (Exception r) {    }  }}