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 :

Recharger JFrame après fermeture d'une autre JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut Recharger JFrame après fermeture d'une autre JFrame
    Bonsoir à tous !

    Voilà ! J'ai un nième problème que je rencontre, je souhaiterai rafraîchir les données d'une JFrame après fermeture de la JFrame active, je m'explique :
    J'ai une JFrame A (fenêtre principale) qui, lorsque je clique sur un menu m'affiche une nouvelle JFrame B. Lorsque je ferme B, je voudrais que A recharge ses données qui ont changés grâce à A.

    Bon ! Je sais pas si j'ai été claire mais n'hésitez à me poser des questions au besoin.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 656
    Points
    1 656
    Par défaut
    J'ai pas vraiment d'idée précise sur le sujet mais t'as peut-etre moyen de faire qqchose avec l'event qui se déclenche quand une fenêtre se ferme. Ou alors, si B est modal avec A, y'a peut-être moyen de récupérer un event lors de la reprise du focus. Fouille au niveau des event, y'en a tellement ^^

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut
    Merci nchal pour ta réponse, je vais regarder du côté des événements et je te fais un retour de mon expérience.
    Vu mon niveau en Java ne t'attends pas à avoir la réponse dans 10mn voir ce soir mais je la posterai quoi qu'il advienne.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Comme suite à ta relance sur ce post. On ne pouvait pas deviner que tu n'y arrivais pas : dans ce cas, n'hésite pas à poster ton code d'essai qu'on puisse te dire là où corriger, où si tu ne procèdes pas comme il faudrait.

    Je te donne des précisions sur les 2 solutions dont parlais @nchal, au cas où tu sois parti dans la mauvaise direction :

    1. On peut écouter une fenêtre pour savoir quand elle se ferme. On fait ça avec un WindowsListener (ou un WindowsAdapter qui est une implémentation déjà prête à l'emploi, donc qui évite d'avoir du code inutile dans son WindowsListener).
      Mais pour faire celà, il faut bien entendu avoir une référence sur la fenêtre à écouter. on fait donc en général ce genre de chose lorsqu'on la créé, ou qu'on l'ouvre. Par exemple, si le code suivant est dans un bouton de la frame1 (dans la méthode actionPerformed() de l'actionListener d'un bouton exactement) :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      JFrame frame2 = new JFrame(...)
       
      frame2.addWindowsListener(new WindowsAdapter() {
       
          public void windowsClosed(WindowsEvent event) { // regarde aussi windowsClosing
       
               // ici tu peux faire le code pour rafraichir tes données dans la frame1 (il y a différente façon de pouvoir le faire (avoir une référence pour appeler une méthode, être dans une classe interne, voire anonyme, etc... 
       
          }
       
      };
      Mais ceci ne peut fonctionner que dans certaines conditions : déjà le mode de fermeture de la fenêtre et que la fenêtre soit fermée par le bouton (pas par appel de dispose()).


    2. La deuxième solution est de passer par une fenêtre modale, et plus particulièrement par un JDialog. L'avantage d'un JDialog modal c'est qu'il bloque la fenêtre principale : on ne peut pas saisir dedans tant qu'on a pas fermer le dialog. Le second avantage c'est qu'on a directement le signal de fermeture, car le code d'appel attend la fermeture du dialogue pour continuer (comme par exemple pour un JOptionPane ou JFileChooser. Du coup le code est plus simple :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       afficher dialog;
      raffraichir données
      Eventuellement, on peut se transférer des données entre les deux : la classe de dialogue peut avoir une méthode qui permet, par exemple, de récupérer le numéro de chambre créée.
    3. Il y a une troisième façon de faire, un peu plus rigide, mais qui est très simple : la frame1 se passe en paramètre de la construction de la frame2, ce qui permet à la frame2 d'appeler certaines de ses méthodes, dont celles qu'on aurait faite pour rafraîchir les données.
    4. Il en existe d'autres, comme celle de faire un modèle global évènementiel, mais là aussi, je ne vais pas t'emmener sur ce terrain maintenant (remarque que l'exemple que je t'avais déjà donné dans une autre discussion était de ce type).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut
    Bonsoir Joël !

    Désolé de répondre aussi tard mais j'ai voulu faire un petit break ! 2 semaines que je suis sur ce projet et j'ai enfin réussit à mettre sur pied 1 jFrame et 2 jDialog (je sais ! Je suis très productif).
    Je voulais en profiter pour t'apporter des nouvelles sur cette fameuse histoire de recharger les données après fermeture d'une jFrame, j'ai donc opté pour la facilité et ai utilisé ta solution 2 c'est à dire une jDialog.

    Après mise en forme et essaie, cela fonctionne à merveille ! C'est très sympa de ta part de m'avoir apporté autant de solutions, d'explications et d'exemples.

    Je voulais en profiter pour saluer et remercier l'ensemble des personnes qui m'ont aidés et m'aident pour ce projet ainsi que pour votre rapidité de réponses et j'espère qu'un jour à mon tour, je pourrais en faire de même !

    Merci pour tout !


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

Discussions similaires

  1. Afficher une JFrame "Chargement en cours.." par dessus une autre JFrame ?
    Par Icefire dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/02/2008, 23h20
  2. ouvrir un JFrame avec le menuintem sur une autre JFrame.
    Par argon dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 26/07/2007, 09h27
  3. ouvrir un jframe avec un jbutton sur une autre jframe.
    Par argon dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 07/05/2007, 20h23
  4. Deplacement d'une JFrame au dessus d'une autre
    Par spip68 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/08/2006, 20h02
  5. JFrame ancrée à une autre JFrame
    Par Actarus78 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 01/09/2005, 23h47

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