我用filewriter将jTable中的内容导出到dat文件,然后用randomaccessfile将文件写入。我是直接在原来的jTable1的行向量下加入导入的数据,然后:
model1.fireTableStructureChanged();
jTable1.revalidate();
jTable1.repaint();
但是出现了3个问题,
一是原先导出的中文导入后变成乱码。
二是原表格列间的距离都改变了,因为原表格我是用了TableColumn的setMaxWidth,setMinWidth限定了列间的距离。
三是原表格中的jComboBox的列导入文件后都变成了普通的可编辑的单元格了。

解决方案 »

  1.   

    搞定了~
    一:不应该用randomaccessfile读,这类还是偏向于处理字节的,更适合用来读取二进制的内容,我现在用bufferdreader读已经没问题了。
    二:将TableColumn重设一遍。
    三:将defalutCellEditor重设一遍。
      

  2.   

    不好意思,刚看到私信。
    读写格式应该一致。比如你存一个int,按照四个byte去读,那肯定就乱了。
    TableColumn重设一遍。你是说每一列的宽度?三:将defalutCellEditor重设一遍。 
    恩,这倒是。不过我知道你那里是否必须使用
    jTable1.revalidate(); 
    jTable1.repaint(); 
    一般这两个方法用的不多。通常通知model改变就可以。如果说model的变动很大,可以重新写一个
    table.setModel(model);只是一种方法和思路。
    呵呵,不错嘛,这么快就解决了。加油。