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 :

Intervenir avant l'activation d'une JFrame


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 16
    Par défaut Intervenir avant l'activation d'une JFrame
    Bonjour,

    Je souhaiterais savoir si il est possible d'effectuer une action avant l'activation d'une fenêtre. Lorsque j'ajoute un listener et que je traite l'évènement WINDOW_ACTIVATED, j'arrive après que la JFrame soit activée.

    J'ai essayé de descendre dans les classes de bas niveau pour essayer de surcharger les processeurs d'évènements window mais encore une fois l'appel à ces méthodes se fait après l'activation. Je cherche donc un système un peu similaire aux évènement WINDOW_CLOSING / WINDOW_CLOSED qui permettent d'intervenir avant et après.

    Peut être est-ilpossible de surcharger une méthode qui est appelée lors de l'activation (j'ai testé sans succès avec show, toFront, etc)...

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Ta fenetre tu la crée bien qq part, pourquoi ne pas faire tout simplement le traitement désiré avant de lancer la fenetre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    // traitement
    ....
    param = "blabla";
     
    // je lance la fenetre
    Fenetre fen = new Fenetre(param);
    fen.setVisible(true);

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 16
    Par défaut
    Je vais préciser un peu ce que je souhaite faire :

    J'ai une fenêtre A et une fenêtre B et je souhaite les rendre complètement indépendante cad que lorsque l'une est iconifiée l'autre aussi et inversement. Idem lorsque l'une est activée l'autre doit l'être aussi et inversement. C'est ce deuxième point qui me pause problème.

    Si A est activée, il faut que j'active B, mais du coup A est désactivée puisque c'est B qui l'est. Donc du coup impossible d'activer A.

    Si en plus je mets en place le fonctionnement inverse : si B est activée, j'active A je vais aller en boucle infinie avec des fenêtres qui s'activent en boucle....


    Bref la seule solution serait de se positionner au moment ou l'ordre d'activer la fenêtre lui arrive à ce moment, je peux alors activer l'autre fenêtre et laisser ensuite l'activation de ma première fenêtre se poursuivre. J'espère que c'est assez clair


    Bien sûr il y aurait la solution consistant à dire : si les deux fenêtres doivent être si liées autant n'en faire qu'une seule mais j'aimerais n'arriver à cette solution qu'en derbier recours. C'est pour cette raison que je souhaite savoir si il y a un moyen de se surcharger une méthode bas niveau qui recevrait l'évènement "doit être activée". J'ai essayé aussi avec les mouseListener sur la frame ou son contentPane mais ça ne marche pas...


    Merci d'avance

  4. #4
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Citation Envoyé par romainC Voir le message
    Si A est activée, il faut que j'active B, mais du coup A est désactivée puisque c'est B qui l'est. Donc du coup impossible d'activer A.

    Si en plus je mets en place le fonctionnement inverse : si B est activée, j'active A je vais aller en boucle infinie avec des fenêtres qui s'activent en boucle....
    J'essaie de me mettre dedans :
    tes deux fenètres sont iconifiées, tu veut les réactiver, tu appel une méthode qui réactive tes fenètres? setVisible sur les deux?

    J'ai du mal à saisir le problème.

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Regarde du côté de la classe WindowStateListener et de la méthode WindowEvent.getNewState()

  6. #6
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 16
    Par défaut
    Alors en fait ce n'est pas le fait de les iconifer qui me pause problème mais le fait de les activer.

    En fait lorsque l'une est activée je souhaiterais activer l'autre.

Discussions similaires

  1. Réponses: 29
    Dernier message: 25/11/2007, 16h08
  2. Réponses: 29
    Dernier message: 25/11/2007, 16h08
  3. [resolulu][SWING] action avant de fermer une JFrame
    Par berg dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/06/2006, 23h15
  4. Activer/Désactiver une JFrame
    Par ceres02 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 29/04/2006, 14h43
  5. Réponses: 7
    Dernier message: 10/02/2006, 15h22

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