注:
上面的方法写在一个NewTableModel类中,该类继承于DefaultTableModelthis即NewTableModel对象谢谢

解决方案 »

  1.   

    你没把原来的column去掉,做一次addcolumn当然就在原来的column后面追加几个column了。
      

  2.   

    可是我删除了Vector数组中的内容还是不行啊???怎么写呢JTable的方法的参数和我这里不同啊
      

  3.   

    但TableModel中已有的column还是没有去掉,必须全部重新设置
    DefaultTableModel有一个setColumnIdentifiers(Vector columns)的方法,但还是有问题,当已有的column少于新column时,新column被添加;但当已有column多于新column时,多出来的column被忽略(实际结果就是保留下来,没有被删掉)-- 比如已有5个column,想改成4个column就不行。所以我看还是重新构造一下this吧。
      

  4.   

    JTable.updateUI(); 刷新一下
    Vector置新值的时候清空一下.new Vector()也可以...
      

  5.   

    那怎么把原来的TableModel中的column去掉呢???怎么办
      

  6.   

    DefaultTableColumnModel dtcm=(DefaultTableColumnModel)table.getTableColumnModel();
    dtcm.removeColumn(dtcm.getColumn(i));//删除第i列
      

  7.   

    下面的试一下:
    public void setTableHeader(boolean isDetails){
          columns = new Vector();
          
          if (isDetails){
            columns.add("文件名");
            columns.add("大小");
            columns.add("日期");
            
            System.out.println("Is coming here1");      } else {
          
           columns.add("文件名");
          
           System.out.println("Is coming here2"); 
          
          }
          setColumnIdentifiers(columns);
       }
      

  8.   

    在鼠标事件里加入listSelectionModel.clearSelection();
    listSelectionModel可以通过table.getSelectionModel();得到