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

Interfaces Graphiques en Java Discussion :

récupérer les données d'une fenetre


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut récupérer les données d'une fenetre
    ,
    Voila j'ai un problème avec la récupération de données d'une fenetre. Au départ j'ai une fenêtre principale qui contient un modèle de Jtable et des boutons(ajouter,sup, mod, etc..). Lorsque je cliquais sur le bouton ajouter, je crée bien une nouvel fenetre2(qui est affecté à une variable objet) et le programe principale continuait. Du coup la variable objet n'est pas affecté avec les données de la fenetre et ça m'affiche null.
    Ma question est : "Est qu'il y a un moyen d'arranger ça ou y a t il une autre façon de programmer ?"
    Merci
    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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
     
    class Fram extends JFrame implements ActionListener {
    public modelTable model;
     
          public Fram(DataFournisseur facture1) {
                 this.setSize(900,650);
                 this.setTitle(facture1.getnomF() );
                 JPanel p1 = new JPanel();
                 JPanel p2 = new JPanel();
                 JPanel p3 = new JPanel();
                 p1.setPreferredSize(new Dimension(810,130));
                 p1.setLayout(null);
     
    ////////////////////constriuction des JLabel et JtextF//////////////
                JLabel chps_nom = new JLabel("NOM :");
                chps_nom.setBounds(100,30,80,20);
                p1.add(chps_nom);
                JLabel fieldname = new JLabel(facture1.getnomF());
                fieldname.setBounds(140,30,200,20);
                p1.add(fieldname);
                p1.setBackground(Color.yellow);
     
                this.getContentPane().setLayout(new BorderLayout());
                this.getContentPane().add("North",p1);
    /////////////////////////////////fin////////////////////////////
     
               Object[] t = facture1.getstockdonnee();
     
    //construction d'un modele
              modelTable model = new modelTable(t);
              JTable table = new JTable();
              table.setModel(model);
              table.setPreferredScrollableViewportSize(new Dimension(870,350));	
              JScrollPane JScroll = new JScrollPane(table);
              p2.setPreferredSize(new Dimension(785,500));
              p2.add(JScroll);
              this.getContentPane().add("Center",p2);
     
    //////////////////////construction des JButton///////////////////////	
             JButton b_ajouter = new JButton("Ajouter");
             b_ajouter.addActionListener(this);
             p3.add(b_ajouter);
             this.getContentPane().add("South",p3);
    /////////////////fin///////////////////////////////
     
             this.setLocationRelativeTo(getParent());
             this.setVisible(true);
             this.dispose();
         }
     
        public void actionPerformed(ActionEvent e) {
               String command = e.getActionCommand();
               if(command.equals("Ajouter")) {
                     FactureFournisseur d = new FactureFournisseur();
                     AjoutData a = new AjoutData();
                     d = a.setdonne();
                     fact1.stockdonnee(fact1); // stocke dans l'arrayList de                        DataFournisseur
               }
        }
    }
     
    public class test {
    public static void main(String args[]) {
    DataFournisseur f1 = new DataFournisseur();
    f1.setnomFournisseur("xxrrx");
    new Fram(f1);
    }}
    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
    import javax.swing.JFrame;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class AjoutData extends JFrame {
    private FactureFournisseur fact1;
    private JFrame frame;
     
    	public AjoutData() {
    		afficheFrame2();
    	}
     
    //partie qui va afficher la fenêtre
       private void afficheFrame2() {
            frame = new JFrame();
            frame.setSize(600,280);
            frame.setTitle("Entrez les données du fournisseur");
            frame.setLayout(null);
     
            //champs date   	
            JLabel chpsdate = new JLabel("Date");
            chpsdate.setBounds(30,50,30,20);
            frame.getContentPane().add(chpsdate);
            JTextField fieldDate = new JTextField();
            fieldDate.setBounds(100,50,150,20);
            frame.getContentPane().add(fieldDate);
     
            //champs numero chèque
            JLabel chps_Ncheque = new JLabel("N°cheque");
            chps_Ncheque.setBounds(30,155,70,20);
            frame.getContentPane().add(chps_Ncheque);    
            JTextField fieldNcheque = new JTextField ();
            fieldNcheque.setBounds(100,155,150,20);
            frame.getContentPane().add(fieldNcheque);
     
            JButton ok = new JButton("OK");
            ok.setBounds(180,200,60,25);
            ok.addActionListener(new ActionListener() {
                      public void actionPerformed(ActionEvent e){
                            okActionPerformed(e);
                      }
            });
     
            frame.getContentPane().add(ok);
            frame.setAlwaysOnTop(false); //la fenetre sera toujours au 1er plan
            frame.setLocationRelativeTo(getParent());//affichage centrer en fonction de l'arrière plan
            frame.setVisible(true);
       }
     
    //ActionPerformed récupèrer les données provenant de la fenetre
         public void okActionPerformed(ActionEvent e) {
                 fact1 = new FactureFournisseur();
                 fact1.setdate(fieldDate.getText());
                 fact1.setNCheque(Integer.parseInt(fieldNcheque.getText()));
                 frame.setVisible(false);  	
         }
     
           public FactureFournisseur setdonne() {
                  return fact1;
           }

  2. #2
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Il faut que tu passes en paramètre du constructeur la référence de l'objet à modifier...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	public AjoutData(FactureFournisseur fact) {
    		this.fact1 = fact;
    		afficheFrame2();
    	}
    Et tu l'appelles comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AjoutData a = new AjoutData(fact1);
    PS : indente ton code, c'est illisible
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Désolé, je me suis mal exprimé. En fait je voulais dire que je n'arrive pas retourner les données de ma fenetre2 car à chaque fois que l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AjoutData a = new AjoutData();
    est appelée, l'instruction suivante est à son tour appelé. Du coup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    d = a.setdonne(); //la var objet d recoit bien des données de la fenetre2
            //mais des données qui n'ont pas été initialisé par les JTextField
           //du coup ça m'affiche 0 ou null 
     
    fact1.stockdonnee(fact1); // et cette instruction ne stocke rien dans l'arrayList de l'objet DataFournisseur
    Ce que je voulais en fait, c'est qu'à partir du moment ou la fenetre2 est appelé et j'aurais rempli les cases Jtextfield , immédiatement après ces données soient retournées dans "d = a.setdonne();" et stockées pour ensuite ajouter une nouvelle ligne à ma JTable.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 145
    Points : 179
    Points
    179
    Par défaut
    Appel la ligne à la fermeture de ta fenetre2 et non à l'ouverture de celle-ci.

  5. #5
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Alors il faut que tu passes la référence de la fenêtre parente à la fenêtre fille, comme ca elles se connaitront et pourront échanger des infos (notamment à la fermeture de la fille )
    +++
    Ju
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    ok merci, je vais essayer

    ps : ca marche, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les données d'une liste dans un $_POST
    Par Sangdrax1604 dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2006, 10h55
  2. Réponses: 5
    Dernier message: 07/09/2006, 14h41
  3. Réponses: 15
    Dernier message: 20/06/2006, 10h29
  4. Récupérer les données après une recherche
    Par cdumas dans le forum Access
    Réponses: 7
    Dernier message: 04/05/2006, 12h09
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

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