IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Récupérer des données pour les stocker


Sujet :

Java

  1. #21
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Alex1407 Voir le message
    voici mon code de la classe connexion , désoler je suis loin d’être bon en java ..........

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import java.sql.*;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    public class connexion{
     
    public static void main (String[] args) {
     
    	try {
     
    		Class.forName("com.mysql.jdbc.Driver");
     
    		String url = "jdbc:mysql://localhost/vehicules";
    		String user = "root";
    		String passwd = "";
     
    	      Connection cn = DriverManager.getConnection(url, user, passwd);
     
    		System.out.println(" connexion etablie ! felicitation :)");
    		System.out.println("***********************************");
     
     
    		//   Requete de test afin de voir si la base de donnees est bien connectée
     
    		/*Statement st = cn.createStatement();
    		st.executeUpdate("insert into carburant(type_carburant,volume,relever_km,montant) values ('essence','20','20000','30')");
    		System.out.println("bien executée");*/
     
     
    	}catch(ClassNotFoundException e) {
    		System.out.println("erreur de driver");
    	}catch(SQLException e) {
    		System.out.println("erreur de la data base !!");
    	}
     
     }
     
    }
    merci beaucoup
    Mais ça c'est une méthode main qui ne fait rien d'autre que de créer une connexion... ou se passe le reste du code qui fait l'affichage du formulaire, l'exécution de la requête, etc... ?

    En tout cas, dans le code que tu as commenté, on voit que tu as déjà su utiliser une instance de connexion pour faire une requête...

    Pour aller au plus simple, avec ce bout de code, tu pourrais simplement mettre ta variable cn en statique, et mettre un accesseur statique.

    Je te mets un exemple rapide, sans gestion d'erreur (par ce qu'il faut penser qu'une connexion ça peut se perdre et donc qu'il faut la refaire le cas échéant), mais ça devrait t'aller pour commencer, et tu amélioreras ça après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public class connexion{
     
    private static Connection cn; // une variable statique pour stocker la connexion
     
    /**
     * Une méthode statique pour aller cherche la connexion
    */
    public static  Connection getConnection() {
    return cn;
    }
     
    public static void main (String[] args) {
     
    	try {
     
    		Class.forName("com.mysql.jdbc.Driver");
     
    		String url = "jdbc:mysql://localhost/vehicules";
    		String user = "root";
    		String passwd = "";
     
    	     cn = DriverManager.getConnection(url, user, passwd);
     
    		System.out.println(" connexion etablie ! felicitation :)");
    		System.out.println("***********************************");
     
     
    		//   Requete de test afin de voir si la base de donnees est bien connectée
     
    		/*Statement st = cn.createStatement();
    		st.executeUpdate("insert into carburant(type_carburant,volume,relever_km,montant) values ('essence','20','20000','30')");
    		System.out.println("bien executée");*/
     
     
    	}catch(ClassNotFoundException e) {
    		System.out.println("erreur de driver");
    	}catch(SQLException e) {
    		System.out.println("erreur de la data base !!");
    	}
     
     }
     
    }
    et dans ton code, tu peut appeler ta connexion comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     ps=connexion.getConnection().preparestatement("insert into carburant (type_carburant,volume,releve_km,montant_plein) values (?, ?, ?, ?)");
     
    				      ps.setString( 1, (Stringt)comboBox.getSelectedItem() ); // paramètre 1
     
    				      ps.setString( 2, textField_1.getText()); // paramètre 2
    				      ps.setString( 3, textField_2.getText()); // paramètre 3
    				      ps.setString( 4, textField_3.getText()); // paramètre 4
    PS: attention, tu devrais suivre les conventions d'usage, entre autre :
    - les noms des classes commençant toujours par une majuscule (donc ta classe Connexion et pas connexion)

    ça t'évitera des confusions plus tard....
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  2. #22
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    ba j'ai que cette classe connexion , je comprend plus rien ^^.
    Pour mon interface j'ai 3 Jframe une accueil , une carburant et une entretien , mon code est directement dans mes Jframes.
    En tout cas, dans le code que tu as commenté, on voit que tu as déjà su utiliser une instance de connexion pour faire une requête...
    oui c’était pour tester la connexion et voir si je récupérer bien mes données dans ma base . je penser faire une requête comme celle de ma classe connexion sur mon bouton valider . Sauf que c'est plus compliquer que sa ^^

    et pour l'accesseur statique je doit le placer ou ?
    PS: attention, tu devrais suivre les conventions d'usage, entre autre :
    - les noms des classes commençant toujours par une majuscule (donc ta classe Connexion et pas connexion)

    ça t'évitera des confusions plus tard....
    merci pour le conseil je tacherais de faire sa maintenant

    merci d'essayer de m'aider et merci pour le code

  3. #23
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Alex1407 Voir le message
    Pour mon interface j'ai 3 Jframe une accueil , une carburant et une entretien , mon code est directement dans mes Jframes.
    Un programme java a un seul point d'entrée : une méthode static main(String[]).

    Tes trois fenêtres sont bien créées quelque part, dans un code qui a été appellé par des méthodes qui ont été appelé par des méthodes, et si on remonte comme ça encore, on finit bien par arriver dans une méthode main().

    La méthode main() de la classe Connexion (connexion si tu n'as pas encore changer la majuscule), ne fait que demander une connexion à une base de données : aucune fenêtre n'y est crée, aucune méthode de la classe n'est appelée, ni aucune méthode d'une autre classe.

    Bien sur, tu peux démarrer ton programme par la méthode main() d'une autre classe, qui créer et affiche tes trois fenêtres, mais soit tu appelles la méthode main() de ta classe connexion pour se connecter à la base de données, soit tu n'est pas connecté à la base (à moins que tu aies fait ça ailleurs dans tes fenêtre).
    Mais si dans ton code main qui créé tes fenêtre tu as à un moment :

    tu crééras bien une connexion, que tu pourras récupérer comme je l'ai indiqué.

    Bien sur il serait plus clair et plus propre d'avoir des méthodes dont le nom a du sens, et qui n'ont pas de paramètre qui ne sont pas nécessaire (déjà çà évite de se poser la question de ce qu'il faut passer en paramètre, et qu'est ce qu'il ne faut surtout pas passer si on veut pas que ça plante)

    Une classe connexion de base pourrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class Connection {
     
        private static Connection connection;
     
        private Connection createConnection() throws SQLException {
    try {
     
    		Class.forName("com.mysql.jdbc.Driver");
     
    		String url = "jdbc:mysql://localhost/vehicules";
    		String user = "root";
    		String passwd = "";
     
    	      return DriverManager.getConnection(url, user, passwd);
     
     
    	}catch(ClassNotFoundException e) {
    		System.out.println("erreur de driver");
    	} 
            return null;
        }
     
        public static synchronized Connection get() throws SQLException {
               if ( connection!=null && !connection.isClosed() ) {
                   return connection;
               }         
               connection = createConnection();
               return connection;
        }
     
        /**
          * NE PAS OUBLIER D'OUBLIER D'APPELER CETTE METHODE A LA FIN DU PROGRAMME POUR FERMER LA CONNEXION
          */
        public static void close() throws SQLException {
              if ( connection!=null && !connection.isClosed() ) {
                   connection.close();
               }
        }
     
    }
    Comme ça maintenant chaque fois que tu as besoin de ta connexion dans ton programme, tu peux faire : Connexion.get().

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     ps=Connexion.get().preparestatement("insert into carburant (type_carburant,volume,releve_km,montant_plein) values (?, ?, ?, ?)");
     
    				      ps.setString( 1, (String)comboBox.getSelectedItem() ); // paramètre 1
     
    				      ps.setString( 2, textField_1.getText()); // paramètre 2
    				      ps.setString( 3, textField_2.getText()); // paramètre 3
    				      ps.setString( 4, textField_3.getText()); // paramètre 4
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #24
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    et il possible de mettre mon petit programme sur le forum ? ou si vous connaissez un site pour l’héberger ...... afin que vous puissiez regarder si vous le voulez.

    je n'ai pas ce code dans mon programme c'est sur. je ne l'ai pas vu en cours en tout cas .
    Comme ça maintenant chaque fois que tu as besoin de ta connexion dans ton programme, tu peux faire : Connexion.get().
    Sa j'ai bien compris par contre

    Merci pour le code

  5. #25
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Alex1407 Voir le message
    et il possible de mettre mon petit programme sur le forum ? ou si vous connaissez un site pour l’héberger ...... afin que vous puissiez regarder si vous le voulez.
    En pièce jointe,au format zip...
    Citation Envoyé par Alex1407 Voir le message
    je n'ai pas ce code dans mon programme c'est sur. je ne l'ai pas vu en cours en tout cas .
    Tu n'est pas obligé d'avoir ça dans ton code, mais dans ce cas, soit tu n'as pas de connexion, soit tu en crées une ailleurs... et ta classe connexion peut être supprimée.

    Citation Envoyé par Alex1407 Voir le message
    Sa j'ai bien compris par contre

    Merci pour le code
    C'est déjà ça
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #26
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    j'ai pas de connexion autre part j’avais réaliser que ma classe connexion .oui c'est déjà sa
    j'ai mis mon programme au format zip pour ceux qui veulent voir mon code plus précisément .

    Merci beaucoup pour votre aide joel.drigo
    Fichiers attachés Fichiers attachés

  7. #27
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Alex1407 Voir le message
    j'ai pas de connexion autre part j’avais réaliser que ma classe connexion .oui c'est déjà sa
    j'ai mis mon programme au format zip pour ceux qui veulent voir mon code plus précisément .

    Merci beaucoup pour votre aide joel.drigo
    Quelques petites chose à changer :
    - ton import de classe Connection : utilises plutôt import java.sql.Connection;, pour être plus générique (moins dépendant d'une implémentation particulière), ça t'évitera en plus de mettre tous les casts que tu as été obligé de mettre...

    - mets ta classe Connexion dans un package, db par exemple (sinon elle ne peut pas être importée depuis une autre classe qui est dans un package : java s'attend à ce qu'elle soit dans le package de cette classe, ce qui n'est pas le cas, et on ne peut pas l'importer parce qu'elle n'a pas de package, donc on ne peut pas l'utiliser)

    - dans la classe carburant, tu as écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps=Connexion.get().preparestatement("insert into carburant (type_carburant,volume,releve_km,montant_plein) values (?, ?, ?, ?)");
    alors que c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps=Connexion.get().prepareStatement("insert into carburant (type_carburant,volume,releve_km,montant_plein) values (?, ?, ?, ?)");
    N'oublie pas de fermer ta connexion à la fermeture :
    - par exemple tu poses un WindowAdapter sur ta frame principale, et sur windowClose() sur fait Connexion.close()
    - tu peux aussi ajouter un shutdownhook par Runtime.getRuntime().addShutdownHook() et mettre le Connexion.close() dans la méthode run du thread de shutdown
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #28
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    j'ai crée un package db ou j'ai mis ma Connexion , donc jusque la tout va bien , dans mes autre fichiers quand je marque : il est tout de suite reconnue . mais lorsque je teste ma requete vers ma base sa ne marche pas j'ai cette erreur :

    java.lang.ClassCastException: com.mysql.jdbc.JDBC4Connection cannot be cast to db.Connexion
    at db.Connexion.createConnection(Connexion.java:21)
    at db.Connexion.get(Connexion.java:34)
    at Vue.carburant$2.actionPerformed(carburant.java:128)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

    Il doit plus rester grand chose a faire je pense .

    merci beaucoup

  9. #29
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu as une erreur de casting : tu essayes d'affecter à une variable d'un type une variable d'un autre type incompatible à celui de la première variable...

    tu ne dois pas avoir de mention de la classe spécifique de ton driver mysql dans la classe Connexion : il faut travailler avec les classes génériques (sauf cas exceptionnel). Donc vérifie ou est utilisée com.mysql.jdbc.JDBC4Connection dans cette classe et remplace par java.sql.Connection (toute déclaration de variable ou d'argument, de paramètre générique, de type de retour de méthode, de cast explicite...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #30
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    j'ai regarder dans mon code mais je n'ai pas cette ligne :
    com.mysql.jdbc.JDBC4Connection
    En tout cas pas dans ma connexion.

    merci beaucoup

  11. #31
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu peux me remettre le code de ta classe Connexion stp
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #32
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Moi je pensais plutôt à une classe sans méthode main. Qui contient :
    - un objet Connection static: cn par exemple
    Dans son constructeur, tu établies ta connexion avec ce cn.
    Et cette classe ne sera utilisée qu'une seule fois à l'entrée de l'application, et tu porras récupérer ta connexion où tu voudras car tu ne feras appel qu'à cn comme suit: TaClasseConnexion.cn
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  13. #33
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    Voici mon code de ma classe connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    package db;
     
    import java.sql.DriverManager;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
     
     
    public class Connexion {
     
        private static Connexion connection;
     
     
        private static Connexion createConnection() throws SQLException {
    try {
     
    		Class.forName("java.sql.Connection");
     
    		String url = "jdbc:mysql://localhost/vehicules";
    		String user = "root";
    		String passwd = "";
     
    	      return (Connexion) DriverManager.getConnection(url, user, passwd);
     
     
    	}catch(ClassNotFoundException e) {
    		System.out.println("erreur de driver");
    	} 
            return null;
        }
     
        public static synchronized Connection get() throws SQLException {
               if ( connection!=null && !((java.sql.Connection) connection).isClosed() ) {
                   return (Connection) connection;
               }         
               connection = createConnection();
               return (Connection) connection;
        }
     
     
     
        /**
          * NE PAS OUBLIER D'APPELER CETTE METHODE A LA FIN DU PROGRAMME POUR FERMER LA CONNEXION
          
        public static void close() throws SQLException {
              if ( connection!=null && !((java.sql.Connection) connection).isClosed() ) {
                   Connexion.close();
               }
        } */
     
     
    }
    merci beaucoup

  14. #34
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Regardes donc l'exemple que je t'ai mis dans mon post.

    Forcément on ne peut pas caster un java.sql.Connection en db.Connexion !!!

    La variable c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static Connection connection;
    et la méthode createConnection retourne du Connection !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #35
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    ...TaClasseConnexion.cn
    Toujours éviter les static, sauf
    - pour les constantes (et encore on pourrait faire des enum)
    - des fonctions utilitaires
    - éventuellement un accès rapide à un singleton (ce qui est le cas de mon exemple de classe Connexion, parce que je voulais pas trop embrouiller @alex1407 avec le passage par argument ou une gestion de contexte)

    Surtout quand l'objet manipulé est "dynamique" : une connexion ça peut se perdre (le serveur peut tomber ou être redémarrer, le réseau se coupé, etc...). Pour peu qu'on veuille se connecter à plusieurs bases différentes, faire du pool de connexions pour faire des requêtes simultanées, fermer sa connexion entre chaque requête, etc, avoir une statique initialisée au démarrage sera ingérable.

    Bon bien sur dans le cas simple de du programme de @alex1407 c'est pas le cas, mais quand même une mauvaise habitude se perd plus lentement qu'une bonne se gagne... On ne fait pas de public static...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  16. #36
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    je n'ai plus aucune erreur dans mon code , j'ai tout vérifier et relus le post que vous m'aviez envoyer . Mais lorsque je clic sur mon bouton ajouter il me retourne tout une liste d'erreur et je ne récupère rien dans me base de données ...... je vais abandonner ce petit programme je pense --'
    Surtout quand l'objet manipulé est "dynamique" : une connexion ça peut se perdre (le serveur peut tomber ou être redémarrer, le réseau se coupé, etc...). Pour peu qu'on veuille se connecter à plusieurs bases différentes, faire du pool de connexions pour faire des requêtes simultanées, fermer sa connexion entre chaque requête, etc, avoir une statique initialisée au démarrage sera ingérable.
    déjà avec une base sa ne fonctionne pas alors j'imagine pas avec plusieurs ^^

    On ne fait pas de public static...
    Je ne ferais plus cette erreur

    Merci beaucoup

  17. #37
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Alex1407 Voir le message
    je n'ai plus aucune erreur dans mon code , j'ai tout vérifier et relus le post que vous m'aviez envoyer . Mais lorsque je clic sur mon bouton ajouter il me retourne tout une liste d'erreur
    lesquelles ?
    Citation Envoyé par Alex1407 Voir le message
    ... je vais abandonner ce petit programme je pense --'
    C'est bien dommage que tu abandonnes. Déjà c'est en faisant des erreurs qu'on apprend. En plus, tu rencontreras régulièrement des problèmes lors de tes développements, et de bien plus complexes à régler. Si c'est ton métier, ça risque d'être gênant si tu abandonnes ce que tu n'arrives pas à faire fonctionner.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #38
    Membre confirmé Avatar de Alex1407
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 166
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    java.lang.NullPointerException
    	at Vue.carburant$2.actionPerformed(carburant.java:128)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$200(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    java.lang.NullPointerException
    	at Vue.carburant$2.actionPerformed(carburant.java:128)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$200(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.awt.EventQueue$4.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    y en a vraiment beaucoup et c'est incompréhensible

    C'est bien dommage que tu abandonnes. Déjà c'est en faisant des erreurs qu'on apprend. En plus, tu rencontreras régulièrement des problèmes lors de tes développements, et de bien plus complexes à régler. Si c'est ton métier, ça risque d'être gênant si tu abandonnes ce que tu n'arrives pas à faire fonctionner.
    oui mais je pensais que ce serais beaucoup plus simple, rien que deja la "Connexion" c'est compliquer a mettre en place et la requete aussi. En plus le concept de la poo c'est vraiment particulier , et je suis pas bon en prog donc c'est encore plus difficile.

    Merci beaucoup

  19. #39
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Quand tu as une exception du type java.lang.NullPointerException, c'est que tu essayes d'invoquer une méthode sur une variable qui n'a pas été affectée avec une instance de classe, donc qui contient null.

    Ensuite dans la stacktrace, tu as la classe ou l'exception est levée (en gris ci-dessous), le nom du fichier (en bleu) et le numéro de ligne de code (en rouge) :

    at Vue.carburant$2.actionPerformed(carburant.java:128)
    Il est donc facile de savoir ou se passe l'exception.

    Si ton code n'a pas changé depuis que tu as posté ton zip, dans le fichier carburant.java, j'ai en ligne 128 ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps.setString( 2, textField_1.getText());
    Donc la variable qui pose problème est
    - soit ps
    - soit textField_1

    (puisque ce sont les deux seules variables dans cette ligne pour lesquelles tu appelles une méthode)

    Donc maintenant, reste à déterminer laquelle des deux.

    D'après le code que j'ai les deux variables sont normalement bien affectées :
    - tu as en ligne 85 : textField_1 = new JTextField();
    - tu as en ligne 124 : ps=Connexion.get().preparestatement(...

    donc tu as probablement changé quelque chose dans le code depuis que tu as posté ton zip. Donc je ne peux pas t'en dire plus... mais toi tu peux par exemple, au plus simple, ajouter une trace juste avant la ligne qui cause l'exception, ou tu affiches dans la console les différentes variables :

    Comme par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("ps : " + ps);
    Tu verras tout de suite quelle variable n'a pas été affectée et ensuite tu peux chercher pourquoi quand tu passes par cette ligne de code la variable n'a pas encore été affectée...

    PS : sans vouloir te donner l'impression que tu es complètement dépassé, ce programme que tu fais est archi simple.
    la programmation c'est un peu comme tout : rien n'est acquis au départ, même si certains peuvent avoir plus d’aisance que d'autres, et tout s'acquière à force d'apprentissage, d'étude, d'essais, de tentatives, d'erreurs, d'expérience et de persévérance. L'entraînement, toujours l'entraînement, jusqu’à ce qui te semble complexe aujourd'hui devienne du réflexe inconscient plus tard...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  20. #40
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Toujours éviter les static, sauf
    - pour les constantes (et encore on pourrait faire des enum)
    - des fonctions utilitaires
    - éventuellement un accès rapide à un singleton (ce qui est le cas de mon exemple de classe Connexion, parce que je voulais pas trop embrouiller @alex1407 avec le passage par argument ou une gestion de contexte)

    Surtout quand l'objet manipulé est "dynamique" : une connexion ça peut se perdre (le serveur peut tomber ou être redémarrer, le réseau se coupé, etc...). Pour peu qu'on veuille se connecter à plusieurs bases différentes, faire du pool de connexions pour faire des requêtes simultanées, fermer sa connexion entre chaque requête, etc, avoir une statique initialisée au démarrage sera ingérable.

    Bon bien sur dans le cas simple de du programme de @alex1407 c'est pas le cas, mais quand même une mauvaise habitude se perd plus lentement qu'une bonne se gagne... On ne fait pas de public static...
    Merci beaucoup. Je m'en servais beaucoup sans tenir compte de tout ça. Je trouve que, avec ces précisions je risquais Inutilement. Plus jamais!!!!
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Récupérer des données pour les insérer dans un schéma "radar"
    Par Onex3891 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/10/2013, 18h45
  2. Réponses: 4
    Dernier message: 20/06/2009, 11h26
  3. [MySQL] Récupérer des données avec les SESSIONS
    Par dylanms dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/04/2009, 11h00
  4. Récupérer des données et les sauvegarder en *.txt
    Par littlepierre dans le forum Interfaces Graphiques
    Réponses: 31
    Dernier message: 17/03/2008, 12h56
  5. Réponses: 4
    Dernier message: 03/01/2008, 12h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo