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 :

Détection de visibilité et invisiblité de JLabel


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut Détection de visibilité et invisiblité de JLabel
    Bonjour,

    j'ai une application composée:
    * d'une classe principale qui instancie:
    * des classes secondaires implémentant JLabel

    L'idée est que ces classes secondaires sont des panneaux conteneurs, rendus visibles ou invisibles par les boutons de la classe principale.

    J'aimerais que ces classes secondaires détectent lorsqu'elles deviennent visibles ou invisibles. J'ai essayé en leur associant un FocusListener, mais cela ne fonctionne pas. J'ai cherché chez SUN, dans la liste des classes et interfaces contenant "Listener" dans leur nom, mais c'est sans succès.

    Existe-t-il un truc du genre VisibleListener ?

    Merci & @ bientôt...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Je ne crois pas que VisibleListener existe, mais comme ta class secondaire étend JLabel, tu peux redéfinir le setVisible().

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    qu'est-ce que tu entends pas "visible"?

    propriété visible à true? -> étendre ladite méthode, c'est le plus simple
    tout la chaine de conteneur parents visible -> Faut checker à la main (t'aura la puce à l'oreille pour la mise en "visible" en raison d'un appel à paint() )


    Quel est l'intérêt de ton composant graphique de savoir si il est visible?

  4. #4
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci à vous pour vos réponses.

    L'idée de capter l'apparition du composant lors du passage dans Paint() est astucieuse !
    Reste le problème de la disparition, je vais tester...

    Sinon, je crois que l'extension de setVisible() devrait faire l'affaire.

    Merci & @ bientôt.

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En même temps tu as déjà le listener qui va bien via l'ActionListener des boutons utilisés pour cacher/montrer tes panneaux.
    Il te faut juste créer une méthode dans la classe de tes panneaux qui sera appelée à chaque fois que l'ActionListener du bouton est déclenché.
    Ré-étendre une des méthode de base de Swing (qui n'est en général utilisée que pour les fenêtres, pour les JPanel je trouve ça vraiment pas génial), mouaif, bof bof.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Je ne trouve pas que redéfinir la méthode dans sa class soit une mauvaise idée.
    Si il effectue des setVisible() sur ce composant à plusieurs endroits dans son appli, pas de redondance de code.
    Après tout dépend de l'utilisation exacte de ce "JLabel" "container".

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Tout dépend du code à y mettre.

    L'utiliser pour définir la couleur d'un bouton , recalculer des positions d'éléments, etc, oui

    L'utiliser pur y faire de la logique buisness, non

  8. #8
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Merci à tous,

    L'idée de pouvoir détecter l'apparition ou la disparition au sein même de la classe concernée me permet de ne pas m'en occuper en dehors de celle-ci.

    J'aurai très bien pu faire une interface dans cette classe du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void demandeAffichage()
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void demandeEffacement()
    ...
    Et si l'affichage ou la disparition proviendrait d'un évènement "hors programme" comme par exemple un ordre de raffraichissement graphique parce que quelqu'un a fait passer une fenêtre au-dessus de mon application...d'ou la volonté d'avoir un système qui détecte l'évènement.

    Ensuite j'ai besoin de ce traitement car j'ai des boutons qui changent d'images en fonction de certaines données. Donc je suis obligé de les actualiser au moment de l'apparition du composant.

    Voila, comme ça, il n'y a plus de supposition quant à l'utilité du système...

    Pour info, j'ai surchargé la méthode setVisible(), et cela fonctionne très bien (Je dirais même que c'est beau le JAVA )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // GESTION DES EVENEMENTS DE FOCUS:
    @Override
    public void setVisible( boolean drapeau )
    {
      // TODO: Traiter l'état du bouton Semestre en fonction de la période de travail et de la date en cours
     
      super.setVisible( drapeau );
    }
    Merci encore pour votre soutien & @ bientôt

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

Discussions similaires

  1. visibilité de jLabel Netbeans
    Par smart_azo14 dans le forum NetBeans
    Réponses: 1
    Dernier message: 06/06/2014, 11h30
  2. Détection de collision de deux JLabel
    Par replicator dans le forum Composants
    Réponses: 3
    Dernier message: 24/12/2011, 10h05
  3. [ActiveX] Visibilité d'une propriété
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2002, 18h33
  4. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32
  5. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25

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