Serialiser et manipuler jtable

Soyez le premier à donner votre avis sur cette source.

Vue 16 066 fois - Téléchargée 1 832 fois

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

Ajouter un commentaire

Commentaires

Messages postés
23
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
23 mars 2009

Je ne comprend pas pourquoi j'ai pas pu l'executer .
Messages postés
1
Date d'inscription
dimanche 19 novembre 2006
Statut
Membre
Dernière intervention
25 décembre 2006

Bonjour,

lorsque je lance le programme ton programme, j'ai cette exception:
java.lang.IllegalArgumentException: Cannot set a null TableModel
at javax.swing.JTable.setModel(JTable.java:2868)
at Test.(Test.java:36)
at Test.main(Test.java:141)

Puis lorsque je clique sur le bouton ajouter, j'ai toutes ses exceptions qui apparaissent :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Test.ajouter_actionPerformed(Test.java:116)
at Test$2.actionPerformed(Test.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


Comment faire pour corriger tout ça ?
Messages postés
3
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
16 décembre 2006

En fait il aurait mieux fallu inserer les données dans une base de données, ou faire un update d'une base de donnée grace à ça, ca aurait été plus chouette.
Messages postés
3
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
22 mars 2006

Ton code manque un peu de commentaire...
Messages postés
78
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
10 août 2005

ça consiste en coi ça ?
Afficher les 12 commentaires

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.