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

Agents de placement/Fenêtres Java Discussion :

Récupérer le contenu d'un JTextField d'une JFrame dans un autre JTextField d'une autre JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut Récupérer le contenu d'un JTextField d'une JFrame dans un autre JTextField d'une autre JFrame
    Bonjour,
    j'utilise deux jframes; sur le premier j'enregistre un document et sur le deuxieme j'enregistre les auteurs.
    Quand je valide l'enregistrement d'un document (clic sur le bouton "enregistrer") j'appelle le deuxieme jframe pour enregistrer les auteurs.
    Je veux en meme temps que le contenu de mon jtextField qui est le code de mon document soit automatiquement le contenu d'un jTextField de ma deuxieme jframe.
    En clair, comment affecter le contenu d'un jtextField à un autre jtextfield d'une autre jframe qu'on appelle?
    Merci bien pour votre aide!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Bonjour,

    En clair, comment affecter le contenu d'un jtextField à un autre jtextfield d'une autre jframe qu'on appelle?
    Le fait qu'ils soient dans deux JFrame différentes n'a aucune incidence.
    Si tes deux JTextField sont déclarés comme variable de classe, avec les getter/setter associés, tu peux faire tout simplement ceci au moment où tu passes sur ta seconde JFrame :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getTFFrame2().setText(getTFFrame1().getText());
    Mako.

  3. #3
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut recuperer le contenu d'un jtextfield d'une jframe dans un autre jtextField d'une autre jframe
    Rebpnjour,
    Merci bien Mako pour votre reponse!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getTFFrame2().setText(getTFFrame1().getText());
    Je n'arrive pas à bien comprendre votre code
    Je precise que j'utilise JFrame Form de Swing GUI Forms de Netbeans
    J'utilise les composants de la palette fournie.
    Donc si je redeclare avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static JTextField jTextField1
    il ya erreur à cause du composant qui existe deja (que j'ai deja utilisé depuis la palette)qui existe deja. Du coup comment declaré mon composant de variable de classe?

    J'ai tenté une variable de type string dans laquelle je recupère le contenu de mon jtextfield afin de l'affecter à une autre variable du meme type string que je vais affecter au jtextField de mon deuxieme JFrame.
    La variabe du deuxieme JFrame n'est pas reconnu dans le premier JFrame.
    Comment faire?

    je n'ai pas bien saisi votre syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getTFFrame2().setText(getTFFrame1().getText());
    j'ai compris que Frame2 est le nom de la classe, mais et ?
    Merci bien de votre aide!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    je n'ai pas bien saisi votre syntaxe
    Mes notations étaient purement arbitraires.

    Disons que tu aies deux classes, correspondant à tes deux JFrames : JFrame1.java et JFrame2.java. Tu dois alors avoir un truc dans le genre :

    Code JFrame1.java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class JFrame1 {
     
         private static JTextField jTextField1;
     
         public static JTextField getJTextField1() {
              return jTextField1;
         }
     
         // Reste du code de la frame
         ...
     
    }

    Code JFrame2.java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class JFrame2 {
     
         private static JTextField jTextField2;
     
         public static JTextField getJTextField2() {
              return jTextField2;
         }
     
         // Reste du code de la frame
         ...
     
    }

    En partant de là, tu as juste à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JFrame2.getJTextField2().setText(getJTextField1().getText());
    . Et ceci indépendamment de l'endroit où tu te trouves (i.e. quelque soit la classe et la méthode où tu appelles ce code).

    (Si ce n'est toujours pas clair, je t'invite à poster un morceau représentatif de ton code)

    Mako.

  5. #5
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut recuperer le contenu d'un jtextfield d'une jframe dans un autre jtextField d'une autre jframe
    Merci beaucoup Mako pour ces reponses ;
    J'ai implementé et ça n'affiche plus d'erreures de compilation mais une erreur d'execution.
    Voici la partie declaration dans mon jframe1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class documents extends javax.swing.JFrame {
    private static JTextField jTextField10;
    public static JTextField getjTextField10(){
        return jTextField10;
    }
    Voici la partie declaration dans mon jframe2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class auteur extends javax.swing.JFrame {
       private static JTextField jTextField20;
    public static JTextField getjTextField20(){
        return jTextField20;
    }
    Voici le code de l'evenement clic de mon bouton dans lequel j'appelle votre code. je suis dans le jframe1
    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
     
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            code = jTextField1.getText();
            type  = combo1.getName();
            titre = jTextField3.getText();
             parution = jTextField4.getText();
            nb_exemp  = jTextField5.getText();
            an_pub = jTextField7.getText();
            edition = jTextField6.getText();
     
                try {
    			Class.forName("com.mysql.jdbc.Driver");
    			System.out.println("DRIVER OK ! ");
     
    			//String url = "jdbc:postgresql://localhost:5432/BDJAVA";
                String url = "jdbc:mysql://localhost:3306/biblio";
    		    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/biblio","root","");
    			System.out.println("Connection effective !");
     Statement state = conn.createStatement();
    state.execute("INSERT INTO documents (code,type,titre,parution,nb_exemp,an_pub,edition)  VALUES('"+code+"','"+type+"','"+titre+"','"+parution+"','"+nb_exemp+"','"+an_pub+"','"+edition+"')");
        } catch (Exception e) {
    		e.printStackTrace();
    		}
    // Voici la partie du  code 
          auteur.getjTextField20().setText(getjTextField10().getText());
            new auteur().setVisible(true);
     
        }
    AU clic sur le bouton, la ligne du code qui correspond a votre code genere l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0"java.lang.NULLPointerException
    Si je mets votre code en commentaire, le jframe auteur s'ouvre normalement mais si je ne met pas le code en commentaire c'est le message d'erreur qui s'affiche.

    Merci bien toujours de votre aide!

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0"java.lang.NULLPointerException
    L'erreur est assez explicite pourtant. Cela signifie que tu essayes de travailler avec un objet qui vaut null.

    Cela vient très certainement du fait que jTextField20 n'est jamais initialisé, ou tout du moins pas avant la ligne qui provoque l'erreur.

    Le "mieux" serait, je pense, de ne pas utiliser des variables statiques comme c'est le cas actuellement. Ainsi, la fin du code de l'évènement clic devrait ressembler à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Par convention, les classes commencent par une majuscule
    // et les variables par une minuscule
    Auteur auteur = new Auteur();
    auteur.getjTextField20().setText(getjTextField10().getText());
    auteur.setVisible(true);
    Mako.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Récupérer le contenu d'un Jtextfield d'une JFrame pour l'utiliser dans une autre Jframe
    Bonjour , je bloque sur un problème il y a 2 jours.
    J'ai 2 Jframe : NewJFrame1 et NewJFrame2 , cette dernière contient le Jtextfield initial dont je souhaite extraire la valeur et l'utiliser dans NewJFrame1. et il y'a une jframe intermédiaire c'est à dire elles ne sont pas successives. j'ai essayé d'instancier la 2éme Jframe dans la NewJFrame1 et de mettre un getter/setter mais ca ne marche pas.

    NewJFrame2
    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import java.sql.PreparedStatement;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
     
    public class NewJFrame2 extends javax.swing.JFrame {
         private Connection cnx;
        private Statement St;
        private ResultSet Rs;
        private PreparedStatement pst;
     
    public NewJFrame2() {
            initComponents();
        }
    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 
     
     
     
        try{
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             cnx = DriverManager.getConnection("jdbc:odbc:Data_archives","sa","sa");
             St = cnx.createStatement();
     
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"erreur" + e.getMessage());
        }
     
     
     
     
    }                                
     
    private void validerActionPerformed(java.awt.event.ActionEvent evt) {                                       
     
        String sql =" Select * from utilisateurs where code_utilisateur=? and mot_passe=?";
        try{
            pst = cnx.prepareStatement(sql);
            pst.setString(1, user.getText());
            pst.setString(2, pass.getText());
            Rs = pst.executeQuery();
            if(Rs.next()){
                JOptionPane.showMessageDialog(null, "Authentification réussie !");   
            }
            else {
                JOptionPane.showMessageDialog(null,"Erreur d'authentification, veuillez vous enregistrer ! ");
     
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "erreur d'authentification " + e.getMessage());
     
     
        }
        if (administrateur.isSelected())
        {
           dispose();
        menu_admin jf = new menu_admin();
        jf.setVisible(true);
        }
        else
        {
            dispose();
            Menu jf = new Menu();
            jf.setVisible(true);
     
        }
     
    }                                      
     
    public  String getJtf()
    {
         return user.getText();
    }
     public static void main(String args[]) {
     java.awt.EventQueue.invokeLater(new Runnable() {
     
    public void run() {
                    new NewJFrame2().setVisible(true);
                }
            });
        }
     private javax.swing.JRadioButton administrateur;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JLabel jLabel4;
        private javax.swing.JPasswordField pass;
        private javax.swing.JTextField user;
        private javax.swing.JButton valider;
    voici NewJFrame1
    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import java.util.Date;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    import javax.swing.table.DefaultTableModel;
     
    public class NewJFrame1 extends javax.swing.JFrame {
     
         private Connection cnx;
        private Statement St;
        private ResultSet Rs;
        private DefaultTableModel dt;
        private String Référence;
        private String Adresse;
        private String Service;
        private int exercice;
        private Date Date_depot;
        private String Déposant;
        private String état;
        private Date date_mouvement;
        private String Intervenant;
        private String Mouvement;
     
     
         private JTextField jtf ;
     
        public NewJFrame1() {
            initComponents();
        }
    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        cnx = DriverManager.getConnection("jdbc:odbc:Data_archives","sa","sa");
        St = cnx.createStatement();
     
        Rs=St.executeQuery("select lib_service from service ");
        servi.removeAllItems();
        while(Rs.next()){
     
           servi.addItem(Rs.getString("lib_service"));
        }
     
        Rs = St.executeQuery("select code_salle from salle");
        salle.removeAllItems();
        while(Rs.next()){
     
           salle.addItem(Rs.getString("code_salle"));
        }
     
        dt = new DefaultTableModel();
      dt.addColumn("Référence");
      dt.addColumn("Adresse"); 
      dt.addColumn("Service");
      dt.addColumn("exercice");
        dt.addColumn("Date dépot ");
      dt.addColumn("Déposant");
      dt.addColumn("état");
      dt.addColumn("Date mouvement");
        dt.addColumn("Intervenant");
          dt.addColumn("Mouvement");
     
     
     
      tInv.setModel(dt);
      afficher();
     
     
    }catch(Exception e){
        JOptionPane.showMessageDialog(null,"erreur requete ");
    }
     
     
    }                                
     
    private void afficher(){
        try {
     
            NewJFrame2 n = new NewJFrame2();
            jtf.setText(n.getJtf());
     
     
     
            Rs = St.executeQuery("Select * from Inventaire,service,autorisation_user where Inventaire.Service=service.lib_service and autorisation_user.code_utilisateur=service.code_utilsateur and service.code_utilsateur ="+jtf+" and autorisation_user.code_salle = "+ salle.getSelectedItem()+"   and autorisation_user.autorisation= 1 " );
     
     
    while(Rs.next()){
     
     
        Référence = Rs.getString("Reference");
     
    Adresse = Rs.getString("Adresse");
    Service = Rs.getString("Service");
    exercice = Rs.getInt("exercice");
    Date_depot = Rs.getDate("Date depot");
    Déposant=Rs.getString("Deposant");
    état=Rs.getString("etat");
    date_mouvement= Rs.getDate("date Mvt");
    Intervenant=Rs.getString("Intervenant");
    Mouvement =Rs.getString("Mouvement");
     
     
    Object ar [] = new Object[] {Adresse,Service,exercice,Date_depot,Déposant,état,date_mouvement,Intervenant,Mouvement };
    dt.addRow(ar);
     
     
     
    }
     
     
     
        }catch(Exception e){
     
            JOptionPane.showMessageDialog(null,"erreur affichage" );
     
        }
     
     
     
     
     
     
     
    }
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
     
                @Override
                public void run() {
                    new NewJFrame1().setVisible(true);
                }
            });
        }
    private javax.swing.JButton jButton1;
        private javax.swing.JInternalFrame jInternalFrame1;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JLabel jLabel4;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTextField reference;
        private javax.swing.JComboBox salle;
        private javax.swing.JComboBox servi;
        private javax.swing.JTable tInv;
    le problème est dans la méthode afficher quand on instancie la NewJFrame2 . J'ai besoin d'aide SVP.

  8. #8
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Je crois que le probleme se trouve au niveau de ton appel, lorsque tu appeles une fonction dans le contructeur, les composantes de cette classe ne sont pas encore presente, ce qui peux poser un probleme.
    Peux-tu nous donner le contenu de ton erreur?
    Eric

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut re
    L'erreur générée est celle de l'exception ( erreur d'affichage !)

  10. #10
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    Dans la classe contenant ton premier jTextField, déclares une variable de classe à qui tu affectes la valeur de ce jTextField. ensuite, à l'endroit où tu voudras récupérer cette valeur, tu ferais juste tonJtextField.setText(JFrameDepart.taVariable);
    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.

Discussions similaires

  1. Récupérer une clé dans un dictionnaire à partir d'une valeur.
    Par alaninho dans le forum Général Python
    Réponses: 3
    Dernier message: 05/05/2011, 10h13
  2. Réponses: 1
    Dernier message: 22/04/2010, 00h32
  3. Réponses: 8
    Dernier message: 15/07/2009, 12h44
  4. Réponses: 9
    Dernier message: 18/01/2009, 23h46
  5. Réponses: 10
    Dernier message: 17/05/2006, 19h55

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