我想做个分页功能,两个表,一个是有所有资料的表1,另一个视图的表2.这个表从表1clone,再经过removeRow()得到的当前页面试图表.但是怎么也做不到.public class DeepCloneObject {//关于深度克隆    public static Object clone(Serializable serializableObject) throws IOException,
            ClassNotFoundException {        if (serializableObject==null) {
            return null;
        }
        Object srcObject = (Object) serializableObject;
        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bao);
        oos.writeObject(srcObject);//123
        byte[] objectByte = bao.toByteArray();
        
        oos.close();
        bao.close();
        
        InputStream bais = new ByteArrayInputStream(objectByte);
        ObjectInputStream ois = new ObjectInputStream(bais);        Object newObject = ois.readObject();
        
        ois.close();
        bais.close();        return newObject;
    }
}public MyTable deepClone(){//MyTable是自己继承JTable的类,
MyTable table1=null;
try {
table1=(MyTable)DeepCloneObject.clone(this);
} catch (IOException e) {
System.out.println(""+e);
} catch (ClassNotFoundException e) {
System.out.println(""+e);
}
return table1;
}public static void main(String args[]){
      *****
      MyTable tableTemp= table.deepClone();
      *****
}
但是出现了resultset不可序列化的错误的报告
java.io.NotSerializableException: com.mysql.jdbc.ResultSet
debug发现出错在注123的那句

解决方案 »

  1.   

    你确定需要深克隆?直接NEW一个再把原来的赋给它不行?
      

  2.   

    但是没有new JTable(JTable table);的方法啊,逐个赋值,还要设置表头,格式,等麻烦事.听说可以深克隆,求解
      

  3.   

    应为ResultSet没有实现Serializable接口,你的serializableObject中是不是包含ResultSet实例?而求如果主要是clone表中数据的话只clone Model就行了,
      

  4.   

    Table newTable = new JTable();
    newTable = oldTable;
    这样行不?
    不行试下这个方法JTable
    public JTable(Vector rowData,
                  Vector columnNames)
      

  5.   

    不解,为什么JTable不能直接clone呢?