bonjour je suis en train de faire mes premiers pas en une application java j'ai developpe une classe eleve qui permet l'ajout d'un eleve ,j'ai fait une classe simple qui permet lors d'un click sur un bouton du menu d'ouvrir la fenetre d'ajout .

tout va bien sauf qu'en exécution la deuxieme fenetre s'ouvre mais vide je vois pas les composants que j'ai mis

voila le code de la classe eleve :

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
package ecole;
import java.sql.*;
import java.text.DateFormat;
import javax.swing.*;
 
import conx.connexion;
 
import java.awt.*;
import java.awt.event.*;
public class eleve extends JFrame
{
    private JLabel nomLabel,numele,prenoml,datel;
    private JTextField numeleve,nome,prenome, dateT;
    private JFormattedTextField daten =new JFormattedTextField(DateFormat.getDateInstance());
    private JButton b01 = new JButton();
    private JButton b02 = new JButton();
    public eleve()
    {
        this.setVisible(true);
        this. setTitle( "ajout_eleve") ;
        this.setAlwaysOnTop(true);
        this. setSize( 450, 300) ;
        this.setResizable(true);
        this. setLocationRelativeTo( null) ;
        this. getContentPane( ).setLayout( new FlowLayout( )) ;
        JPanel pan = new JPanel( ) ;
        pan. setBackground( Color. white) ;
        pan. setLayout( new BorderLayout( ) ) ;
        this.add(pan);
        JPanel panNom = new JPanel( ) ;
        panNom. setBackground( Color. white) ;
        panNom. setPreferredSize( new Dimension( 420, 250) ) ;
 
 
        JTextField numeleve  = new JTextField();
        numeleve.setPreferredSize(new Dimension(150, 25));
 
 
        JTextField nom  = new JTextField();
        nom.setPreferredSize(new Dimension(150, 25));
 
 
        JTextField prenom  = new JTextField();
        prenom.setPreferredSize(new Dimension(150, 25));
 
 
        JTextField date  = new JTextField();
        date.setPreferredSize(new Dimension(150, 25));
 
        panNom.setBorder( BorderFactory. createTitledBorder( "Information d'elève : ") ) ;
        numele = new JLabel( "Numero d'elève : ") ;
        numele.setPreferredSize(new Dimension( 150, 25));
        panNom.add(numele);
        panNom.add(numeleve);
        nomLabel = new JLabel("Nom d'elève :    ") ;
        nomLabel.setPreferredSize(new Dimension( 150, 25));
        panNom. add( nomLabel) ;
        panNom. add( nom) ;
        prenoml = new JLabel("Prenom d'elève");
        prenoml.setPreferredSize(new Dimension( 150, 25));
        panNom.add(prenoml);
        panNom.add(prenom);
        datel = new JLabel("Date de Naissance :");
        datel.setPreferredSize(new Dimension( 150, 25));
        panNom.add(datel);
        panNom.add(date);
        b01 = new JButton("valider");
        b01.setBackground(Color.WHITE);
        b01.setPreferredSize(new Dimension( 100, 25));
        b01.addActionListener( new ActionListener( )
        {
            public void actionPerformed( ActionEvent arg0)
             {
 
                String num = numeleve.getText();
                String no = nom.getText() ;
                String preno = prenom.getText();
                String dn = date.getText();
                //requete
                String requete = "INSERT INTO eleve VALUES ('"+num+"','"+no+"','"+preno+"','"+dn+"')";
                  Statement state;
                try {
 
                    state = connexion.getconnect().createStatement();
                int res = state.executeUpdate(requete);
                if(res!=0){
                     //state.execute(requete);
                        setVisible( false) ;
                        JOptionPane.showMessageDialog(null, "Eneregistrement ajouté avec succès", "info", JOptionPane.INFORMATION_MESSAGE);
                        }
                     //state.execute(requete);
                        setVisible( false) ;
                        //res.close();
                        state.close();
                } catch (SQLException e) {
                    JOptionPane.showMessageDialog(null, e.getMessage(), "info", JOptionPane.INFORMATION_MESSAGE);
                    e.printStackTrace();
                }
             //On exécute la requête
 
              }
        });
        b02 = new JButton();
        b02.setText("Annuler");
        b02.setPreferredSize(new Dimension( 100, 25));
        b02.setBackground(Color.WHITE);
        b02.addActionListener( new ActionListener( ) {
        public void actionPerformed( ActionEvent arg0) {
             setVisible(false);
 
        }});
    }}
et voici la main:
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
public static void main(String[]args)
    {
        JFrame f =new JFrame("ma fenetre");
        f.setSize(300, 100);
        JMenu file = new JMenu("fichier");
        JMenuItem newf = new JMenuItem("nouveau eleve");
        JMenuBar menu = new JMenuBar();
          newf.addActionListener(new ActionListener()
           {
              public void actionPerformed(ActionEvent event)
              {    
                  eleve el = new eleve();
              }
            });
          file.add(newf);
          menu.add(file);
          f.setLayout(new GridLayout(5, 1));
          JPanel panel = new JPanel();
          f.add(menu);
          f.add(panel);
          f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          f.setVisible(true);
    }