Hallo Zusammen,
nach längeren Recherchen und Stundenlangen durchkämmen des Internets möchte ich Euch fragen, ob Ihr mir helfen könnt.
In einem JTable lasse ich neue Zellen per JButton einfügen und entfernen. Den Inhalt zu speichen ist kein Problem, das habe ich mit dem Interface Serializable realisieren können.
Nun möchte ich den Zustand der neu eingefügten oder entfernten Zellen speichen, sodass bei neuem laden die Anzahl der Zeilen wieder stimmt. Der Originalcode umfasst ca. 15000 Zeilen, deshalb habe ich mal schnell ein neues erstellt.
Mit dem im Code erstellten Methoden writeObject und readOject funktioniert das leider nicht.
Könnt Ihr mir weiter helfen?
nach längeren Recherchen und Stundenlangen durchkämmen des Internets möchte ich Euch fragen, ob Ihr mir helfen könnt.
In einem JTable lasse ich neue Zellen per JButton einfügen und entfernen. Den Inhalt zu speichen ist kein Problem, das habe ich mit dem Interface Serializable realisieren können.
Nun möchte ich den Zustand der neu eingefügten oder entfernten Zellen speichen, sodass bei neuem laden die Anzahl der Zeilen wieder stimmt. Der Originalcode umfasst ca. 15000 Zeilen, deshalb habe ich mal schnell ein neues erstellt.
Mit dem im Code erstellten Methoden writeObject und readOject funktioniert das leider nicht.
Könnt Ihr mir weiter helfen?
Java:
import javax.swing.table.*;
import java.io.*;
import javax.swing.JTable;
public class TestSer extends javax.swing.JFrame implements Serializable{
public TestSer(){
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
Tabelle = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
save = new javax.swing.JButton();
load = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
jPanel1.setLayout(null);
Tabelle.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(Tabelle);
jPanel1.add(jScrollPane1);
jScrollPane1.setBounds(10, 50, 270, 200);
jButton1.setText("Neu");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1);
jButton1.setBounds(10, 10, 80, 23);
jButton2.setText("Entfernen");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jPanel1.add(jButton2);
jButton2.setBounds(130, 10, 140, 23);
save.setText("Speichern");
save.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveActionPerformed(evt);
}
});
jPanel1.add(save);
save.setBounds(13, 260, 110, 23);
load.setText("Laden");
load.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
loadActionPerformed(evt);
}
});
jPanel1.add(load);
load.setBounds(170, 260, 110, 23);
getContentPane().add(jPanel1);
jPanel1.setBounds(20, 0, 290, 290);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel playerModel = (DefaultTableModel)Tabelle.getModel();
playerModel.addRow(new Object[]{null});
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel playerModel = (DefaultTableModel)Tabelle.getModel();
playerModel.removeRow(Tabelle.getSelectedRow());
}
private void saveActionPerformed(java.awt.event.ActionEvent evt) {
try {
FileOutputStream fs = new FileOutputStream("c:\\test1.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
TestSer ts = new TestSer();
os.writeObject(ts.Tabelle);
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void loadActionPerformed(java.awt.event.ActionEvent evt) {
try{
FileInputStream fs = new FileInputStream("c:\\test1.ser");
ObjectInputStream is = new ObjectInputStream(fs);
TestSer Ar = new TestSer();
Tabelle = (JTable)is.readObject();
is.close();
} catch (IOException e) {
System.err.println(e.toString());
} catch (Exception e) {
System.err.println(e.toString());
}
}
public static void main(String args[]) {
TestSer Ar = new TestSer();
Ar.setSize(350, 350);
Ar.setVisible(true);
}
// Variables declaration - do not modify
private javax.swing.JTable Tabelle;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton load;
private javax.swing.JButton save;
// End of variables declaration
}