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 !

UNE JTABLE REMPLIE AVEC DU XML


Information sur la source

Catégorie :Swing Classé sous : jtable, xml Niveau : Débutant Date de création : 14/10/2004 Vu / téléchargé: 5 410 / 946

Note :
Aucune note

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

Description

Ce p'tit code source permet de lier un fichier XML et une JTable. Il permet seulement la lecture de fichier xml pour l'instant mais il sera possible d'enregistrer dans quelques jours.
 

Source

  • /*
  • * JTableXml.java
  • *
  • * Created on 14 octobre 2004, 13:49
  • */
  • package anemf.lgc.xml;
  • import javax.xml.transform.*;
  • import javax.xml.parsers.*;
  • import javax.xml.transform.sax.*;
  • import org.xml.sax.*;
  • import javax.xml.transform.dom.*;
  • import javax.xml.transform.stream.*;
  • import org.w3c.dom.*;
  • import java.io.*;
  • import anemf.lgc.basededonnee.*;
  • import anemf.lgc.*;
  • import java.sql.*;
  • import java.util.*;
  • import javax.swing.*;
  • import javax.swing.table.*;
  • import java.awt.*;
  • /**
  • *
  • * @author renard
  • */
  • public class JTableXml extends JTable {
  • Element e;
  • /** Creates a new instance of JTableXml */
  • public JTableXml(Element elem){
  • this.e = elem;
  • System.out.println("tototo" + e.getNodeName());
  • init();
  • }
  • public void init(){
  • this.setModel(new AbstractTableModel() {
  • public String getColumnName(int col) {
  • return JTableXml.this.getColumnName(col);
  • }
  • public int getRowCount() { return JTableXml.this.getRowCount(); }
  • public int getColumnCount() {return JTableXml.this.getColumnCount();}
  • public Object getValueAt(int row, int col) {
  • return getValueAt(row, col);
  • }
  • public boolean isCellEditable(int row, int col)
  • { return true; }
  • public void setValueAt(Object value, int row, int col) {
  • JTableXml.this.setValueAt(value, row, col);
  • fireTableCellUpdated(row, col);
  • }
  • });
  • }
  • public String getColumnName(int col) {
  • for(int i=0; i< e.getChildNodes().getLength(); i++ ){
  • if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
  • int p=-1;
  • for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++){
  • if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
  • p++;
  • if(p==col)
  • return e.getChildNodes().item(i).getChildNodes().item(j).getNodeName();
  • }
  • }
  • }
  • return null;
  • }
  • public int getRowCount() {
  • if(e==null) return 0;
  • int p=0;
  • for(int i=0; i< e.getChildNodes().getLength(); i++ ){
  • if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE)
  • p++;
  • }
  • return p;
  • }
  • public int getColumnCount() {
  • int p=0;
  • for(int i=0; i< e.getChildNodes().getLength(); i++ ){
  • if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
  • for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++)
  • if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
  • p++;
  • return p;
  • }
  • }
  • return 0;
  • }
  • public Object getValueAt(int row, int col) {
  • if(e==null) return null;
  • int pp = -1;
  • for(int i=0; i< e.getChildNodes().getLength(); i++ ){
  • if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
  • pp++;
  • if(pp==row){
  • int p=-1;
  • for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++){
  • if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
  • p++;
  • if(p==col)
  • try{
  • return e.getChildNodes().item(i).getChildNodes().item(j).getFirstChild().getNodeValue();
  • }
  • catch(Exception er){er.printStackTrace();};
  • }
  • }
  • }
  • }
  • return null;
  • }
  • public boolean isCellEditable(int row, int col) {
  • return true;
  • }
  • public void setValueAt(Object value, int row, int col) {
  • }
  • /**
  • * @param args the command line arguments
  • */
  • public static void main(String[] args) {
  • try{
  • DocumentBuilderFactory DBF = DocumentBuilderFactory.newInstance();
  • Document doc = DBF.newDocumentBuilder().parse(JTableXml.class.getResourceAsStream("test.xml"));
  • System.out.println(doc.getDocumentElement().getNodeName());
  • JTableXml jtx = new JTableXml(doc.getDocumentElement());
  • JFrame f = new JFrame();
  • f.getContentPane().setLayout(new BorderLayout());
  • f.getContentPane().add(jtx.getTableHeader(), BorderLayout.NORTH);
  • f.getContentPane().add(jtx, BorderLayout.CENTER);
  • f.pack();
  • f.show();
  • }catch(Exception e){
  • e.printStackTrace();
  • }
  • // TODO code application logic here
  • }
  • }
/*
 * JTableXml.java
 *
 * Created on 14 octobre 2004, 13:49
 */

package anemf.lgc.xml;

import javax.xml.transform.*;
import javax.xml.parsers.*;
import javax.xml.transform.sax.*;
import org.xml.sax.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import java.io.*;
import anemf.lgc.basededonnee.*;
import anemf.lgc.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
/**
 *
 * @author  renard
 */
public class JTableXml extends JTable  {
    Element e;
    /** Creates a new instance of JTableXml */
    
    
    public JTableXml(Element elem){
        this.e = elem;
        System.out.println("tototo" + e.getNodeName());
        init();
    }
    public void init(){
        this.setModel(new AbstractTableModel() {
            public String getColumnName(int col) {
                return JTableXml.this.getColumnName(col);
            }
            public int getRowCount() { return JTableXml.this.getRowCount(); }
            public int getColumnCount() {return JTableXml.this.getColumnCount();}
            public Object getValueAt(int row, int col) {
                return getValueAt(row, col);
            }
            public boolean isCellEditable(int row, int col)
            { return true; }
            public void setValueAt(Object value, int row, int col) {
                JTableXml.this.setValueAt(value, row, col);
                fireTableCellUpdated(row, col);
            }
        });
        
        
    }
    
    
    public String getColumnName(int col) {
        for(int i=0;  i< e.getChildNodes().getLength(); i++ ){
            if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
                int p=-1;
                for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++){
                    if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
                        p++;
                    if(p==col)
                        return e.getChildNodes().item(i).getChildNodes().item(j).getNodeName();
                }
            }
        }
        return null;
    }
    
    public int getRowCount() {
        if(e==null) return 0;
        int p=0;
        for(int i=0;  i< e.getChildNodes().getLength(); i++ ){
            if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE)
                p++;
        }
        return p;
    }
    
    public int getColumnCount() {
        int p=0;
        for(int i=0;  i< e.getChildNodes().getLength(); i++ ){
            if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
                for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++)
                    if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
                        p++;
                return p;
            }
        }
        return 0;
    }
    
    public Object getValueAt(int row, int col) {
        if(e==null) return null;
        int pp = -1;
        for(int i=0;  i< e.getChildNodes().getLength(); i++ ){
            if(e.getChildNodes().item(i).getNodeType()!= Element.TEXT_NODE){
                pp++;
                if(pp==row){
                    int p=-1;
                    for(int j = 0 ; j<e.getChildNodes().item(i).getChildNodes().getLength(); j++){
                        if(e.getChildNodes().item(i).getChildNodes().item(j).getNodeType()!= Element.TEXT_NODE)
                            p++;
                        if(p==col)
                            try{
                            return e.getChildNodes().item(i).getChildNodes().item(j).getFirstChild().getNodeValue();
                            }
                            catch(Exception er){er.printStackTrace();};
                    }
                }
            }
        }
        return null;
        
        
    }
    
    public boolean isCellEditable(int row, int col) {
        return true;
    }
    
    public void setValueAt(Object value, int row, int col) {
        
    }
    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try{
            DocumentBuilderFactory DBF = DocumentBuilderFactory.newInstance();
            Document doc = DBF.newDocumentBuilder().parse(JTableXml.class.getResourceAsStream("test.xml"));
            System.out.println(doc.getDocumentElement().getNodeName());
            JTableXml jtx = new JTableXml(doc.getDocumentElement());
            JFrame f = new JFrame();
            f.getContentPane().setLayout(new BorderLayout());
            f.getContentPane().add(jtx.getTableHeader(), BorderLayout.NORTH);
            f.getContentPane().add(jtx, BorderLayout.CENTER);
            f.pack();
            f.show();
            
        }catch(Exception e){
            e.printStackTrace();
        }
        
        
        
        // TODO code application logic here
    }
    
    
    
}

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

Commentaires et avis

signaler à un administrateur
Commentaire de DhakouaniM le 30/04/2005 04:33:50

La ligne f.show(); est à remplacer par f.setVisible(true); car le methode show a ete abandonnee depuis qq temps.

signaler à un administrateur
Commentaire de DhakouaniM le 30/04/2005 04:36:20

Ah ouim et j'avais oublié... Les lignes suivantes peuvent être supprimées.

package anemf.lgc.xml;
import anemf.lgc.basededonnee.*;
import anemf.lgc.*;

signaler à un administrateur
Commentaire de agnescol le 27/05/2005 16:21:43

je suis arrivée à la compiler en utilisant xerces.jar mais lors de l'execution g une erreur :
"Exception in thread "main" java.lang.noClassDefFoundError: JTableXml

je ne comprend pas pkoi peut-tu m'aider?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

JTable et XML ? [ par bea4031 ] Salut &#224; tous un petit renseignements je veux cr&#233;er un fichier XML &#224; partir d'un JTable.Faut il absolument recr&#233;er un modele de JTa jtable et fichier xml [ par souhira_tn ] comment parser un fichier XML et remplir une jtable avec java Mapping JTable avec XML ? [ par budhax ] Bonjour,Je cherche depuis longtemps un exemple de mapping JTable &lt;-&gt; fichier.xmlavec mise-à-jour du fichier.xml après édition de la JTable.Rien Page JSP qui renvoie du xml [ par AlexN ] Salut,J'ai une page JSP (status.jsp) qui est appelée en boucle depuis une autre (results.jsp) par l'objet XMLHttpRequest pour connaitre l'état d'avanc Lier plusieurs documents XSD... [ par Foub ] Bonjour,je dois valider des documents XML avec un document XML-Schema (XSD).Mon document XSD se décompose en trois fichiers : 1 - mesTypesSimples.xsd JTable [ par kawtar_ch ] Salut!!comment faire pour qu'un JTable m'affiche les données a partir de la base de données et comment pourrais modifier, supprimer et ajouter dans la JTable [ par kawtar_ch ] Bonjour!!comment afficher le contenu d'une BDD dans JTable?? et comment pouvoir modifier, supprimer ou ajouter une ligne dans JTable en mettant à jour colonnes de JTable [ par kawtar_ch ] Bonjour!est-ce qu'on peut rendre certaines colonnes d'une JTable grisées alors que d'autres ne le sont pas?? Fichier xml et service web [ par sche44 ] Bonjour,J'ai creé un service web sous myeclipse (xfire), ensuite j'ai ajouter un API a ce service, le problème c que cet API utilise un fichier xml po


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



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,374 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é.