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

Composants Java Discussion :

Evénements de la souris court-circuités


Sujet :

Composants Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut Evénements de la souris court-circuités
    Bonjour,

    j'affiche un JPanel, contenant une image et plusieurs JButton, dans chaque cellule d'un JTable.
    Les boutons ne sont pas destinés à entraîner une modification des données mais uniquement à modifier la manière dont l'image va s'afficher.

    Le problème, c'est que les listeners MouseListener / ActionListener ajoutés sur les composants inclus dans ce JPanel sont ignorés.
    J'imagine que les évènements sont captés par le CellEditor, mais même si je mets le defaultCellEditor à null, j'ai le problème.

    Y a-t-il un moyen de capter les clics sur ces boutons en désactivant l'édition ou quelque chose comme ça ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Bonjour,

    Si tes boutons sont dans les cellules d'une table, l'action listener ne sera pas appelé.

    Il te faut ajouter des mouseListener à ta table et détecter sur quelle cellule tu te trouves pour lancer manuellement le click sur le bouton.

    Cdlt

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    D'accord, merci !

    Mais autrement dit, impossible d'avoir plus d'un bouton par cellule ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Re,

    Si tu peux mais il te faudra certainement calculer la position exacte de ta souris par rapport à tes boutons pour savoir au dessus duquel tu te trouves lors du click. Ca se fait.

    Mais après il doit exister sur le net des renderers qui pourrait correspondre à ton besoin.


    Cdlt,

  5. #5
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Pourquoi places-tu tes boutons dans une JTable ?
    Parce que c'est possible à faire effectivement mais comme à la base ce n'est pas vraiment fait pour, tu vas devoir écrire beaucoup de code pour que ça fonctionne correctement.
    Bref à toi de voir, il existe ici un tutoriel sur l'utilisation des JTable qui te permettra au moins de comprendre la structure que tu souhaites utiliser.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Il est vrai que je n'ai pas posé la question mais en effet, es-tu obligé d'utiliser une JTable pour ce que tu veux faire ou bien est-ce un choix?

    Car il existe quelques layouts qui permettrait de faire ce que tu veux.

    Cdlt,

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    Je suis obligé, le JTable existe déjà, il n'affiche que des valeurs numériques actuellement, et je dois l'étendre pour ajouter une image avec des boutons dans certaines de ses cellules.
    Je suis conscient que c'est plutôt du bidouillage, mais c'est ce qui m'est demandé dans le cadre d'un projet scolaire

  8. #8
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Si le fait d'utiliser le clique sur la cellule qui contient ton bouton n'est pas suffisant, il faut que tu regardes du côté du TableCellEditor.

    c'est ce qui m'est demandé dans le cadre d'un projet scolaire
    Juste par curiosité, on peut voir ce qui t'est concrètement demandé ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    Oui, mais il me semble TableCellEditor est a priori plutôt conçu dans une logique où l'édition utilise des composants différents par rapport à l'affichage (JLabel => JTextField, etc), non ?
    Dans mon cas, il y aurait exactement la même chose affichée dans le Renderer et dans l'Editor... Ou alors il faudrait que je crée une classe qui implémente les deux interfaces à la fois ?

    Concrètement, j'ai un client OLAP qui permet de visualiser des données numériques uniquement (dans le JTable), et l'idée serait d'y ajouter le support de données géographiques. Il y a plusieurs cartes par cellule, que l'on superpose en 3D (du 2D + temps, quoi). Je fais ça avec Java3D, je récupère l'image générée, et je l'affiche dans une cellule. Les boutons serviraient par exemple à regénérer l'image après avoir effectué telle ou telle rotation / zoom...

  10. #10
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Oui, mais il me semble TableCellEditor est a priori plutôt conçu dans une logique où l'édition utilise des composants différents par rapport à l'affichage (JLabel => JTextField, etc), non ?
    Non, c'est fait pour éditer le contenu de la cellule, rein de plus.

    Dans mon cas, il y aurait exactement la même chose affichée dans le Renderer et dans l'Editor... Ou alors il faudrait que je crée une classe qui implémente les deux interfaces à la fois ?
    Oui, c'est comme ça qu'on fait.
    Attention, dans ce cas, à la création de l'arbre il faut créer des instances différentes pour setDefaultRenderer et setDefaultEditor, sinon ça fonctionne moins bien.

Discussions similaires

  1. [PageControl] Raccourcis claviers court-circuités
    Par Manopower dans le forum Composants VCL
    Réponses: 8
    Dernier message: 04/09/2009, 16h52
  2. [Disque Dur] Problème de court-circuit
    Par saih_tam dans le forum Composants
    Réponses: 9
    Dernier message: 20/05/2009, 15h03
  3. Réponses: 13
    Dernier message: 09/04/2007, 13h20
  4. Evénements clavier et souris !
    Par Franck.H dans le forum SDL
    Réponses: 7
    Dernier message: 19/07/2006, 21h11
  5. Réponses: 4
    Dernier message: 16/03/2004, 18h03

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