Ouvrir une fenetre à partir d'une autre

edhgjhdgj Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
faseldi Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Quand je clique sur un bouton de la première fenêtre f1 pour ouvrir la deuxième fenêtre f2, la nouvelle fenêtre qui s'ouvre est vide, il n'y a que les boutons agrandir, réduire et quitter ( et quand j’agrandis la fenêtre, elle est vide).

public class F1 {
 
private JFrame frame;

public static void main(String[] args) 
{        
        EventQueue.invokeLater(new Runnable()
        {            
              public void run() 
                {               
                  try {
                         FenetreDeConnection window = new FenetreDeConnection();
                         window.frame.setVisible(true); 
                 } 
                 catch (Exception e) { e.printStackTrace();  }
                }
        });    
 }         

public F1() {  initialize(); }

 private void initialize() {
        button.addActionListener(new ActionListener()  {   
             @Override 
              public void actionPerformed(ActionEvent arg0) 
             {
                 frame.dispose(); 
                 F2 f2 = new F2();
                  f2.setVisible(true); 
              } 
         }             
   });         
}}




public class F2 extends JFrame { 
       
      private JFrame frame;
 
      public static void main(String[] args) {
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 try {
                    FenetreDesRequetes window = new FenetreDesRequetes();
                    window.frame.setVisible(true); 
               } catch (Exception e) { e.printStackTrace(); }
             } 
        });    }   

public FenetreDesRequetes() {  initialize();}  

private void initialize() { ... }



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

faseldi Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonsoir, le main n'est pas un constructeur, tu ne dois l'avoir qu'une seule fois dans ton code.

le constructeur de F2 a le profil suivant : F2(){ code... }

De plus utiliser le runnable que te propose ton IDE va te perdre plus qu'autre chose si tu débutes en prog java

remplace le public static void.... de F2 par un constructeur :
public F2(){
super(); // ici on appelle le constructeur de la JFrame que tu extends
FenetreDesRequetes window = new FenetreDesRequetes(); // on construit ta fenetre des requetes
this.add(window); // on ajoute à la fenetre ta fenetre
}


Note : ta fenetre des requetes ne peut pas être ajouté en l'état.

Je suppose qu'elle contient un JPanel ou un JScrollPane, de ce fait, elle devrait avoir le profil suivant:
public class FenetreDesRequetes extends JPanel{...}


remplace le JPanel à l'intérieur de la requete par le "this" qui dit "je suis un JPanel"
0