[debutant][serialisation ][jtable]pb de sauvegarde
salut ,
je me lance dans la serialisation j'ai fais un petit test (pour serialiser une JTABLE) mais j'ai encore des problemes , apres la serialisation qd je redemmarre j'ai une nouvelle table , il y a de forte chance que ça soit a cause du "model" de la table voila mon code (le but est de seaialiser une jtable) et pour le moment je n'y arrive pas donc si quelqu'un s'y connait se srait sympa de me mettre sur le droit chemin
MERCI§§
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| import javax.swing.*;
import java.awt.event.*;
import java.util.Vector;
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.TitledBorder;
import java.text.*;
import javax.swing.table.*;
public class BoxTest extends JFrame implements Serializable
{
private JTable table;
JPanel pann = new JPanel(new GridLayout(0,1));
JPanel gestion = new JPanel(new GridLayout(1,3));
public BoxTest()
{
final DefaultTableModel model = new DefaultTableModel(0,1);
JButton Ajouter = new JButton("Ajouter");
JButton Supprimer = new JButton("Supprimer");
JButton Valider = new JButton("Valider");
pann.setPreferredSize(new Dimension(500, 500));
try {
File file = new File("sauve.tmp");
//deserialisation
if(file.exists() ) {
FileInputStream fis = new FileInputStream("sauve.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
table = (JTable) ois.readObject();
table.setModel(model);
ois.close();
} else {
table = new JTable();
table.setModel(model);
}
}catch(Exception e)
{
e.printStackTrace();
}
pann.add(table);
getContentPane().add("Center",pann);
gestion.add(Ajouter);
gestion.add(Supprimer);
gestion.add(Valider);
setSize(600,400);
getContentPane().add("South",gestion);
table.setPreferredScrollableViewportSize(new Dimension(500, 400));
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
Ajouter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Integer[] newCells = new Integer[model.getColumnCount()];
for (int i = 0; i < newCells.length; i++)
newCells[i] = new Integer((i + 1)
* (model.getRowCount() + 1));
model.addRow(newCells);
}
});
Supprimer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
int [] selected = table.getSelectedRows();
for (int i = selected.length - 1; i >= 0; i--)
model.removeRow(selected[i]);
}
});
Valider.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
try {
//Serialisation
FileOutputStream fos = new FileOutputStream("sauve.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(table);
oos.close();
System.exit(0);
} catch (IOException e1) {
e1.printStackTrace();
}
System.exit(0);
}
});
}
public static void main(String[] args)
{
BoxTest test = new BoxTest();
test.pack();
test.setVisible(true);
}
} |