2016-04-24 9 views
0

Ich versuche Serialisierung und Deserialisierung von Daten von JTable in einer Klasse namens Ex, ich bekomme ein Verhalten im Zusammenhang mit JTable und DefaultTableModel, die ich nicht verstehe. Ich verwende eine List<String[]> als Datencontainer, die ich nicht sicher bin, wie zu deserialisieren.Serialisieren und Deserialisieren einer Liste <String[]> JTable

public class Ex implements Serializable { 
static List<String> S1 = new ArrayList<String>(); 
static List<String[]> Z1 = new ArrayList<String[]>(); 
... 
Ex 
{ 
for (int i = 0; i < 1; i++) {Z1.add(new String[] {(i+1)+"",((i+1)*10)+"",((i+1)*100)+""});} 
data = new DefaultTableModel(Z1.toArray(new Object[][] {}), S1.toArray()); 
tab = new JTable(data); 
... 
} 
} 

Serialisierung und Deserialisierung Methoden Tasten genannt wie diese sieht wie folgt aus

public void Serializer(Ex caller) 
{ 
    try { 
    FileOutputStream fs = new FileOutputStream("Ser.ser"); 
    ObjectOutputStream os = new ObjectOutputStream(fs); 
    os.writeObject(caller); 
    os.flush(); 
    os.close(); 
    } catch (Exception e) {e.printStackTrace(); } 
} 

public void Deserializer() 
{ 
    Ex J = null; 
    try { 
    FileInputStream fis = new FileInputStream("Ser.ser"); 
    ObjectInputStream ois = new ObjectInputStream(fis); 
    J = (Ex) ois.readObject(); 
    ois.close(); 
    } catch (Exception e) { e.printStackTrace(); } 
    DefaultTableModel data2 = new DefaultTableModel(J.Z1.toArray(new Object[][] {}), J.S1.toArray()); 
    tab.setModel(data2); 
} 

MyTableListener schauen mit:

public class MyTableListener implements TableModelListener 
{ 
    Ex x; 
    MyTableListener(Ex E) {x=E;} 
    public void tableChanged(TableModelEvent e) 
    { int row = e.getLastRow(); 
     int col = e.getColumn(); 
     String[] rowBuffer = x.Z1.get(row); 
     rowBuffer[col]=(String)x.data.getValueAt(row,col); 
    } 
} 

und in Hauptmethode:

... 
Ex THIS = new Ex(); 
Tlistener = new MyTableListener(THIS); 
data.addTableModelListener(Tlistener); 
... 

Kann ein nyone spezifizieren, wie man bitte List<String[]> richtig deserialisiert?

Antwort

0

Gelöst: Statische Felder werden nicht serialisiert.

Verwandte Themen