UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPv

解决方案 »

  1.   

    是你的rowdata 元素个数和列的个数不匹配吧?能否把model代码贴出来一块儿看看
      

  2.   

    import java.sql.*;
    import javax.swing.table.*;
    import java.util.*;class ResultsModel extends DefaultTableModel
    {
    public void setStatement(Statement statement)
    {
    this.stmt = statement;
    }

    public void setResultSet(ResultSet results)
    {
    if(results == null)
    {
    columnNames = new String[0];
    dataRows.clear();
    fireTableChanged(null);
    return;
    }
    try
    {
    metadata = results.getMetaData();

    int columns = metadata.getColumnCount();
    columnNames = new String[columns];

    for(int i = 0 ;i < columns;i++)
    columnNames[i] = metadata.getColumnLabel(i+1);

    dataRows = new Vector();
    String[] rowData;
    while(results.next())
    {
    rowData = new String[columns];
    for(int i = 0;i < columns;i++)
    rowData[i] = results.getString(i+1);

    dataRows.addElement(rowData);
    }

    fireTableChanged(null);
    }
    catch(SQLException sqle)
    {
    System.err.println(sqle);
    }
    }

    public int getColumnCount()
    {
    return columnNames.length;
    }

    public int getRowCount()
    {
    if(dataRows == null)
    return 0;
    else
    return dataRows.size();

    }

    public Class getColumnClass(int c) 
    {
         return getValueAt(0, c).getClass();
        }

    public Object getValueAt(int row,int column)
    {
    return ((String[])(dataRows.elementAt(row)))[column];
    }

    public String getColumnName(int column)
    {
    return columnNames[column] == null ? "No Name" : columnNames[column];
    }

    public void setValueAt(Object value,int row,int col)
    {
    ((String[])(dataRows.elementAt(row)))[col] = (String)value;
    }

    //使jtable中的内容可编辑
        public boolean isCellEditable(int row, int column)
        {
             return column != 0;
        }
        
        
    String[] columnNames = new String[0];
    Vector dataRows = new Vector();
    Statement stmt;
    ResultSetMetaData metadata;
    String table = null;
    String table_pk = null;
    }这个问题我已经用另外一种方法自己解决了,修改这个ResultModel的dataRows,直接在里面增加一元素
    但很上知道tableModel.addRow(rowdata);的用法,各样是这样用的吗?
    以上的错误是不是因为行数和列数都由dataRows决定了,不能用addRow吗?
    我自己解决的方法就是在dataRows中加入一元素就搞定了