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 :

interaction JFrame, JDialog, JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut interaction JFrame, JDialog, JFrame
    Bonjour à tous,
    Tout d'abord, je m'excuse par avance de ne pas mettre de code car il est très très long, et je pense que ça encombrerai le topic (bien sûr, il est disponible sur demande !).
    Je vais donc essayer de détailler mon problème :
    - J'ai une JFrame principale (la JFrame de l'application) qui exécute une action par un JMenu
    L'action est codée dans la classe de cette JFrame et ouvre une boite de dialogue
    - Cette boite de dialogue demande un paramètre
    - Quelques tests sont exécutés sur le paramètre, puis quand on clique sur OK, un traitement est effectué, qui se conclut par l'affichage d'une JFrame (on a donc à l'écran 2 fenêtres : la principale et celle de traitement)

    Le paramètre se transmet bien, certains champs JText de la JFrame principale peuvent être mis à jour puisque l'action est lancée depuis celle-ci.

    Mais mon problème se situe sur un bouton de la JFrame secondaire, celle de traitement, qui possède un JButton "Actualiser" : en cliquant sur ce JButton, il ne faut pas que je repasse par la boite de dialogue "Paramètre", là aucun souci, mais par contre, comment faire pour mettre à jour les champs de la JFrame principale, vu que dans ce contexte, ce n'est pas elle qui lance l'action ?

    Je vous remercie d'avance de vos réponses à ce problème qui m'obsède depuis plusieurs jours
    A bientôt

  2. #2
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    lorsque tu instancie jframe2 tu peux lui joindre en parametre jframe1.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Salut,
    Je crois que j'ai essayé ça déjà, de même que l'héritage ... mais ça ne marche pas.
    Je pense que le problème vient de l'écoute de la JFrame principale : comment lui dire d'écouter d'autres fenêtres, d'autres actions lancées par ces autres fenêtres ... etc ?
    Car quand je fais mes tests sur le paramètre saisi dans la JDialog lancée par la JFrame principale, et que je relance la JDialog par elle-même, je n'arrive pas non plus à mettre à jour ma JFrame principale.
    Pour résumer, ma JFrame principale ne se met à jour lors d'une action que si c'est elle-même qui lance cette action.
    Ça pose le problème plus vaste de l'architecture MVC j'ai l'impression, mais n'y a-t-il pas de solution plus simple ?
    @+

  4. #4
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    effectivement l'héritage ne peux pas te servir,

    Mais sois tu commandes jframe1 via jframe2 ou soit jframe1 dispose d'un écouteur (Listener) et jframe2 s'abonne a cette écouteur dans les deux cas jframe2 doit avoir une référence sur jframe1

    tu peux aussi passer par un static global qui référence jframe1 et accessible par jframe2

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    ok, je vais essayer mais une JFrame est un composant ou un container ? c'est à dire que sur ma JFrame principal, je fais un addComposantListener ou addContainerListener ?
    et comment j'abonne ma JFrame2 à JFrame1 ?
    Merci !

  6. #6
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    jframe est un conteneur, mais dans un premier temps la solution du passage par parametre serait plus simple pour toi

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    ok, je vais essayer ça et te tiens au courant ! merci !
    @+

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Encore une petite question : dans ma JFrame principale, j'ai une classe FenetrePrincipale qui crée un JMenu et un Container (ce dernier contenant des JSplitPane, des JPanel, des JTextAreau, des JLabel ... bref, tout ce qu'il faut pour faire une application). D'où ma question : qu'est ce que je passe en paramètre ? La JFrame elle-même ? L'instance de la classe FenetrePrincipale (j'ai déjà essayé, peut être mal, mais ça marche pas) ? le Container ? les composants du Container (déjà essayé aussi, peut être encore plus mal, mais marche toujours pas !) ?

  9. #9
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    post ton code ce sera peut-être plus simple

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Ca y est, ça marche ! J'ai donc transmis un des JPanel de la JFrame principale à ma JDialog, récupéré le composant JLabel, mis à jour celui-ci, et fait un updateUI() sur le JPanel !
    Je me demandait juste ce qu'il était préférable de transmettre en terme de performance, de charge ... etc

  11. #11
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    a ce niveau la performance n'est pas significative. Par contre l'articulation du code son découpage et sa localisation oui.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Tu aurais des exemples ou des contextes d'exemple ?
    EDIT sur le message précédent : même pas besoin de faire un updateUI() !
    Merci et @+

  13. #13
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    dans ton cas écrire en méthode dans ta jframe du genre setTextMonLabel(String str) et dans ta seconde frame faire un jframe.setTextMonLabel("blabla");

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Ok, merci encore et à+

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

Discussions similaires

  1. Retourner un objet à partir d'une JFrame/JDialog
    Par Julien Bodin dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/05/2009, 15h57
  2. JFrame / JDialog cast
    Par donnadieujulien dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 04/08/2008, 14h38
  3. Communication Jdialog Jframe
    Par matique dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 22/01/2007, 17h01
  4. [SWING][JFRAME - JDialog] cela ne s'affiche pas
    Par PoPeio dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 29/03/2006, 14h18
  5. [JFrame] [JDialog] plusieurs JFrame dans un JFrame principal
    Par thief dans le forum Agents de placement/Fenêtres
    Réponses: 19
    Dernier message: 30/01/2006, 12h40

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