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

AWT/Swing Java Discussion :

JComboBox et JTextPane


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut JComboBox et JTextPane
    Bonjour,

    J'ai une JComboBox permettant à l'utilisateur de choisir une police et un JTextPane dans lequel il peut saisir un texte.

    J'aimerai implémenter le comportement suivant :
    - quand l'utilisateur clique sur un des éléments de la JComboBox, la police est mise à jour (ça c'est OK), et le focus est rendu au JTextPane
    - quand on clique sur la JComboBox pour l'ouvrir et qu'on se déplace dans la liste avec les flèches haut et bas, le focus reste sur la JComboBox.

    Je n'arrive pas à associer les 2 comportement : j'arrive à avoir l'un ou l'autre mais pas les 2...

    Quelqu'un saurait-il comment je dois m'y prendre?
    Merci d'avance!

  2. #2
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut
    tu utilises quel listener pour savoir quand tu dois redonner le focus à ton JTextPane ?

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Pour l'instant, j'utilise du ItemListener et du ActionListener.

    Le ItemListener me sert à mettre à jour la police utilisée pour écrire le texte lorsque que le selectedItem change. Malheureusement, je ne peux pas l'utiliser (à priori en tout cas) pour redonner le focus à mon JTextPane, car sinon lors du défilement avec les touches, je redonnerai directement le focus au JTextPane. Or j'aimerai justement que ce soit le cas, seulement quand on valide le choix, et pas juste quand on parcourt la liste des polices possibles.

    Le ActionListener est utilisé pour appliquer le style au JTextPane, lorsque je clique sur un des boutons présents : "Gras", "Italique", "Souligné", ou le bouton de choix de la couleur du texte. Et je ne pense pas qu'il soit utilisable pour ça non plus...

    Un MouseListener pourrait peut-être faire l'affaire, mais je ne vois pas trop comment...

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    il me semble (je ne me souviens plus très bien) que JComboBox envoie des ItemEvent lorsqu'on se déplace dans le PopupMenu, mais envoie un ActionEvent lors d'une vraie sélection.

    Si j'ai bien compris ton problème, il faudrait ajouter un actionListener à la JComboBox :
    - ItemEvent : actualiser la police
    - ActionEvent : actualiser la police + redonner le focus au JTextPane.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Citation Envoyé par xavlours
    Bonjour,
    il me semble (je ne me souviens plus très bien) que JComboBox envoie des ItemEvent lorsqu'on se déplace dans le PopupMenu, mais envoie un ActionEvent lors d'une vraie sélection.
    Si ça fait vraiment ça, ce serait nickel!
    Je teste...

    Si j'ai bien compris ton problème, il faudrait ajouter un actionListener à la JComboBox :
    - ItemEvent : actualiser la police
    - ActionEvent : actualiser la police + redonner le focus au JTextPane.
    Tu as très bien compris!

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Malheureusement, la JComboBox seule, ne renvoie pas d'ActionEvent sur la sélection.
    Par contre, si j'ajoute un ActionListener sur la JComboBox, le parcours de la JComboBox génère un EctionEvent, ce qui n'est pas ce que je veux...

    Une autre idée?

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux utiliser un ItemListener pour détecter le changement d'item et mettre à jours la police de ton JTextPane, et en plus de cela utiliser un PopupMenuListener pour détecter la fermeture de la Popup et rendre la main à ton JTextPane...

    a++

Discussions similaires

  1. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 17h09
  2. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 11h53
  3. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 16h01
  4. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 16h33
  5. Scroll automatique dans un JTextPane
    Par regbegpower dans le forum Composants
    Réponses: 9
    Dernier message: 11/11/2003, 10h24

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