我是这样做的:
TableColumn column = table.getColumn("ColumnName");
删除一列:
TableColumnModel tcm = table.getColumnModel();
tcm.removeColumn(firstNameColumn);
增加一列:
table.addColumn(firstNameColumn);

解决方案 »

  1.   

    我按照楼上所说试过,是可以解决这个问题。但是这么做没有用到表模型,结果又出现一个新问题:无法添加行。因为table和TableColumnModel都没有addRow(Object[])方法。必须使用表模型,可是在我为table加上一个model时,编译抛出ArrayIndexOutOfBoundsException,如何解?代码如下:
    DefaultTableModel model=new DefaultTableModel();
    table= new JTable(model);
    TableColumn column_1=new TableColumn();
    TableColumn column_2=new TableColumn();
    Object[] rowData=new Object[2];
    table.addColumn(column_1);
    TableColumnModel tcm = table.getColumnModel();
    tcm.removeColumn(column_1);
    table.addColumn(column_2);
    model.addRow(rowData);
      

  2.   

    因为当你增加列时,就不能向下面那样写死为一行两列数据。
    Object[] rowData = new Object[2];
    而应该先计算出此时显示的列数: int colCount = model.getColumnCount();
    然后再rowData = new Object[colCount];
      

  3.   

    还是不行呢,改正rowData = new Object[colCount];的错误以后问题还是没有解决,被删的那一列依然会重新出现。
    model.addColumn("k");
    model.addColumn("kk");
    int colCount = model.getColumnCount();
    rowData = new Object[colCount];
    TableColumnModel tcm = table.getColumnModel();
    tcm.removeColumn(table.getColumn("k"));
    model.addColumn("kkk");
    执行上述代码后,界面上会出现三列,列名分别为k,kk和kkk。
    如果最后一行不执行的话,界面上只有名为kk的那一列。
    名字为k的那一列被删掉了。