Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SERIALISER ET MANIPULER JTABLE


Information sur la source

Catégorie :Divers Niveau : Débutant Date de création : 19/07/2004 Date de mise à jour : 26/07/2004 13:25:06 Vu / téléchargé: 10 554 / 1 391

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
version Finalee :
permet d'ajouter, de supprimer des lignes dans une jtable puis serialiser le tout
 

Source

  • 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);
  • }
  • }
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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

19 juillet 2004 13:12:57 :
on ne peut pas editer les lignes de la table probleme en cours ...
20 juillet 2004 09:52:06 :
le bug est corrigé par l'ajout de la ligne suivante if(table.isEditing()){ if (table.getCellEditor() != null) { table.getCellEditor().stopCellEditing(); } }
21 juillet 2004 08:07:27 :
suite a la demande de Conan j'ai enlevé les _ (qu'il sont exigeants ces informaticiens lol)
26 juillet 2004 13:25:07 :
mise a jour

Commentaires et avis

signaler à un administrateur
Commentaire de gmi19oj19 le 19/07/2004 10:34:37

Merci de mettre ça dans un zip, c'est pas très agréable à lire ...

signaler à un administrateur
Commentaire de bidani le 20/07/2004 09:53:23

voila pour faire plaisir a gmi19oj19 le zip la capture d'ecran et la correction du bug
voili voilou!!!

signaler à un administrateur
Commentaire de GodConan le 20/07/2004 13:10:07

Arreter dc de mettre des "_" partou qu es c est pas beau ;-( ... Ca a ser quoi la majuscule ....  ;o)

++

signaler à un administrateur
Commentaire de bidani le 20/07/2004 13:37:36

salut GodConan
je n'ai pas compris ton commentaire (plus de precision)

signaler à un administrateur
Commentaire de GodConan le 20/07/2004 14:59:53

sauve_actionPerformed(ActionEvent e)

sauve"_"actionPerformed(ActionEvent e)


ecrire plutot

sauveActionPerformed(ActionEvent e)

signaler à un administrateur
Commentaire de bidani le 21/07/2004 08:09:05

salut Conan le barbare

C fait !!! si quelqu'un voit un bug ou quelque chose qui ne va pas faites moi signe(ça m'occupera!!)

signaler à un administrateur
Commentaire de GodConan le 21/07/2004 22:21:12

ben tu peu ajouter l export des donnee en XML ;o)

c rigolo ...

signaler à un administrateur
Commentaire de bidani le 22/07/2004 08:09:55

ça consiste en coi ça ?

signaler à un administrateur
Commentaire de krolineeeeeeee le 16/11/2006 11:13:57

Ton code manque un peu de commentaire...

signaler à un administrateur
Commentaire de serialkilled le 16/12/2006 23:04:56

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.

signaler à un administrateur
Commentaire de survivor34 le 25/12/2006 19:31:08

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.<init>(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 ?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,671 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.