Serialiser et manipuler jtable

Description

version Finalee :
permet d'ajouter, de supprimer des lignes dans une jtable puis serialiser le tout

Source / Exemple :


import javax.swing.*;
import java.awt.event.*;

import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.table.*;

public class Test extends JFrame implements Serializable
{

public JTable table;
JPanel pann = new JPanel(new GridLayout(0,1));
JPanel gestion = new JPanel(new GridLayout(1,3));
public DefaultTableModel model;

public Test()
{

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 = new JTable();
model = (DefaultTableModel) ois.readObject();
table.setModel(model);
ois.close();
} else {

model = new DefaultTableModel(0,1);
table = new JTable();
table.setModel(model);

}

}catch(Exception e)
			    {
			      e.printStackTrace();
		  }

//JScrollPane scrollpane = new JScrollPane(pann);

JScrollPane scrollPane = new JScrollPane(table);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));

/*pann.setLayout(new BorderLayout());
pann.add(table, BorderLayout.CENTER);*/
pann.add(scrollPane);
//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)
 		            {
 						setVisible(false);
 		            }
            });

Ajouter.addActionListener(new ActionListener() {
		  			      public void actionPerformed(ActionEvent e){
                      ajouterActionPerformed(e);

		            }
            });

Supprimer.addActionListener(new ActionListener() {
		  			      public void actionPerformed(ActionEvent e){
						supprimerActionPerformed(e);
						}

            });

Valider.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent e){
								sauveActionPerformed(e);
							setVisible(false);

						       }
						        });
}

public void supprimerActionPerformed(ActionEvent e){

	                    if(table.isEditing()){
								      if (table.getCellEditor() != null) {
								              table.getCellEditor().stopCellEditing();
								      }
                               }

                        int [] selected = table.getSelectedRows();
						for (int i = selected.length - 1; i >= 0; i--)
						model.removeRow(selected[i]);
}

public void ajouterActionPerformed(ActionEvent e){

						String [] data = new String [model.getColumnCount()];
						data[0] = "http://";
						model.addRow(data);
}

public void sauveActionPerformed(ActionEvent e) {

                             if(table.isEditing()){
							      if (table.getCellEditor() != null) {
							              table.getCellEditor().stopCellEditing();
							      }
                               }

	               try {

								//Serialisation
								FileOutputStream fos = new FileOutputStream("sauve.tmp");
								ObjectOutputStream oos = new ObjectOutputStream(fos);
								oos.writeObject(model);
								oos.close();
								} catch (IOException e1) {
									 e1.printStackTrace();
								}
							}

public static void main(String[] args)
{
Test test = new Test();
test.pack();
test.setVisible(true);

}

}

Conclusion :


version Finale à ADAPTER au besoin de chaqun

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.