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

AWT/Swing Java Discussion :

[SWING] Ouverture d'une fenetre à partir d'une autre.


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué Avatar de VinceTlse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 163
    Points : 191
    Points
    191
    Par défaut [SWING] Ouverture d'une fenetre à partir d'une autre.
    Bonjour,
    J'ai une question très très basique, et qui va surement vous faire sauter au plafond, mais je n'arrive pas à trouver la façon dont il faut proceder pour ouvrir une fenetre à partir d'une autre (à l'aide d'un bouton).
    Je voulais savoir aussi si il était possible que lorsque on n'ouvre la fenetre, la précédente se ferme.

    Merci d'avance pour vos aides.

    Vincent

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    si tu veux ouvrir une fenêtre le code suivant suffit dans l'actionPerformed de ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /* Ouvrir nouvelle fenêtre */
    final JFrame frame = new JFrame("Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);
    Ensuit pour fermer la précedente tu dois faire
    Mais je ne suis pas sur du résultat ;o)

  3. #3
    Membre habitué Avatar de VinceTlse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 163
    Points : 191
    Points
    191
    Par défaut
    Merci beaucoup,
    Je vais tenter d'intégrer ceci à mon code.

  4. #4
    Membre habitué Avatar de VinceTlse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 163
    Points : 191
    Points
    191
    Par défaut
    Le code pour ouvrir la seconde fenetre marche très bien.
    Par contre lorsque je ferme la premiere fenetre, la seconde se ferme aussi ... et ca m'embete beaucoup .

    Vous savez comment il faudrait que je procède.

    Merci beaucoup.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Je pense que c'est normal car tu ferme la fenêtre parente.

    Est-ce que c'est la fenêtre principale de ton appli ?

    Si ce n'est pas le cas alors tu dois t'arranger pour que ta nouvelle fenêtre soit crée par un objet parent de la fenêtre que tu veux fermer.

    Exemple:
    Tu a la fenêtre principale de ton appli.
    Tu ouvre une fenêtre avec un bouton.
    Quand tu clic sur le bouton de la seconde fenêtre tu appel une méthode de la fenêtre parent qui va elle crée un autre fenêtre puis la fenêtre peut faire un dispose sur elle même.

    Regarde ce code ;o)
    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
     
    package test;
     
    import java.awt.Component;
     
    import javax.swing.JFrame;
     
    /**
     * @author Cyrille MATINIER
     * @version 1.0 (3 nov. 2005)
     */
    public class Mother {
      private final JFrame frame = new JFrame("Maman");
     
      public Mother() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setLocationByPlatform(true);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        openFrame();
      }
     
      public void openFrame() {
        Child child = new Child(this);
      }
     
      public Component getFrame() {
        return frame;
      }
     
      public static void main(String[] args) {
        new Mother();
      }
    }
    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
     
    package test;
     
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
     
    /**
     * @author Cyrille MATINIER
     * @version 1.0 (3 nov. 2005)
     */
    public class Child {
      private final JFrame frame = new JFrame();
      private static int number = 1;
     
      public Child(final Mother mother) {
        final JButton button = new JButton("Action");
     
        frame.setTitle("Fille n°"+number);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(170, 150);
        frame.setLocationByPlatform(true);
        frame.setLocationRelativeTo(mother.getFrame());
        number++;
     
        button.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent event) {
            mother.openFrame();
            frame.dispose();
          }
        });
        frame.getContentPane().add(button, BorderLayout.SOUTH);
     
        frame.setVisible(true);
      }
    }

  6. #6
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Pour avoir un code optimisé, le mieux est d'utiliser des JDialog modale pour tout ce qui est fenetre "secondaires" d'une JFrame "principale".

  7. #7
    Membre habitué Avatar de VinceTlse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 163
    Points : 191
    Points
    191
    Par défaut
    C'est ce que m'a conseiller un collègue.
    J'essaie de voir comment empecher de revenir sur la premiere fenetre.

    Merci

  8. #8
    Membre habitué Avatar de VinceTlse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 163
    Points : 191
    Points
    191
    Par défaut
    Il faut tout simplement faire : .setModal(true).
    et .dispose() pour revenir à la fenetre principale.

    Merci encore pour votre aide.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    ChildFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

  10. #10
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut comment Aficher un Jlabel dans la fenetre fille ...
    Bonjour a tous ... je suis ausi un débutant en java

    mon probléme est que je voudré aficher un message d'ereur dans la

    fenetre fille d'ont vous parler dans ce sujet ... je voudré l'aficher dans un Jlabel ...

    merci d'avance ...

  11. #11
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Solovely Voir le message
    Bonjour,

    si tu veux ouvrir une fenêtre le code suivant suffit dans l'actionPerformed de ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /* Ouvrir nouvelle fenêtre */
    final JFrame frame = new JFrame("Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);
    Ensuit pour fermer la précedente tu dois faire
    Mais je ne suis pas sur du résultat ;o)


    J'arrive a affiché la fenêtre mais je voudré savoir comment y ajouter des composant ( Jlabel par exemple ) ...

    si il y'a qq1 pour m'aider ... please help me ....

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 26/04/2011, 09h10
  2. Réponses: 5
    Dernier message: 23/04/2008, 15h41
  3. [VB]accéder au composant d'une fenetre à partir d'une autre
    Par ennamsaoui dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/04/2006, 11h44
  4. Gérer fenetre tierce d'une application à partir d'une autre
    Par narutobaka dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 07/09/2005, 12h01

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