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 :

Ecouter les clics sur une fenêtre entière


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 269
    Points : 13 533
    Points
    13 533
    Par défaut Ecouter les clics sur une fenêtre entière
    Bonjour Docteur


    J'ai bien lu les tutos sur les Listener, mais je n'ai pas trouvé le remède.
    Voici les symptômes:
    J'ai une fenêtre principale avec un JPanel dans lequel le programme dessine, et une fenêtre secondaire qui liste des options à l'aide de JCheckbox dans un JPanel. Le dessin est fait en fonction des options.
    • Quand on clique dans la fenêtre secondaire, je voudrais un ré-affichage du dessin. Manque de pô, la case-à-cocher intercepte l'évenement et il ne se passe rien . Quand on clique dans la fenêtre secondaire entre les cases-à-cocher, cela marche.
    • J'ai rajouté le dessin d'un gif animé. Victoire colatérale, le dessin est automatiquement réactualisé (après clic sur la fenetre d'options). Mais ce gif n'est pas destiné à rester tout le temps !


    Comment écouter les évènements qui surviennent sur toute la surface d'un conteneur et pas seulement sur les parties visibles ?

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Hello,

    juste une idée rapidement... de tête je dirais que le JPanel n'est pas focusable et qu'il n'intercepte donc pas l'événement.

    avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jPanel.setFocusable(true);
    ça pourrait t'aider. A tester

  3. #3
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Il existe plusieurs combines, mais deux voies royales : crapahuter avec un JLayeredPane, ou foncer avec un JXLayer (voir JXLayer 3.0 - Event handling).

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 269
    Points : 13 533
    Points
    13 533
    Par défaut
    Citation Envoyé par romano88 Voir le message
    je dirais que le JPanel n'est pas focusable et qu'il n'intercepte donc pas l'événement.
    Ah? Car pour toi, les boutons, les cases-à-cocher, les boites de choix, etc ne sont pas focusable donc n'interceptent pas d'évènement ? Ce serait difficile de faire marcher des applications.



    Gifffftane, ta réflexion m'a conduit à cette page très instructive. Je suis abasourdi d'avoir raison dans le fait que ce sont bien les objets du dessus qui empêchent les objets du dessous de voir. Moi, je pensais avoir tort car les conteneurs recevaient les évènements transmis par ceux du dessus. Et ben non.

    Il apparait donc deux solutions:
    Soit je me sers du glass pane et je transmets aux composants du dessous les clics.
    Soit mes "options" (composants de la fenetre) implémentent le même mouselistener (Je voulais éviter cette solution mais je n'ai plus le choix.)

    Je vous tiens au courant.

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 269
    Points : 13 533
    Points
    13 533
    Par défaut
    Bon ben j'ai opté pour la solution 2. Merci de votre participation.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    merci beaucoup romano88
    tu as résolu mon problème

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

Discussions similaires

  1. [WPF] Empecher le clic sur une fenêtre
    Par Johngtrs dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 13/12/2012, 01h39
  2. Contrôler les actions sur une fenêtre externe
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 27/04/2011, 10h22
  3. Cacher les labels sur une fenêtre
    Par calvi2002 dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/09/2010, 17h31
  4. Ecouter les clics sur les boutons de volume
    Par titou624 dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 16/08/2010, 16h40
  5. Bloquer les clics sur une fenêtre
    Par Enzololo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/05/2006, 22h12

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