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

Applets Java Discussion :

Problème applet ComboBox Event ActionPerformed


Sujet :

Applets Java

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut Problème applet ComboBox Event ActionPerformed
    Bonjour à tous,

    j'ai un petit soucis lors de l'initialisation de composants. J'ai plusieurs JComboBox pour lesquelles j'ai associé un event ActionPerformed. Un traitement est effectué en fonction de ce qui est sélectionné. (Jusqu'ici c'est du classique).

    Seulement je me suis aperçu que ces ComboBox avaient un comportement différent selon que j'execute l'applet dans mon environnement Eclipse ou dans mon navigateur web (IE et Firefox).

    En effet dans mon environnement Eclipse, lorsque les composants (JComboBox) sont initialisés le code de l'event ActionPerformed n'est pas invoqué (ce qui me semble normal).

    En revanche lorsque j'execute mon applet dans un web browser, lors de l'initialisation de mes comboBox, le code contenu dans le event ActionPerformed de chaque comboBox est executé (ce qui me pose des problèmes car ce code ne devrait être éxecuté que lorsque je selectionne moi-même une valeur dans ma combo).

    Quelqu'un peut-il m'expliquer cette différence de comportement et comment y faire face ?

    Merci.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pose le listener dans les combobox après les avoir remplies

    Normalement, quand une combobox est vide puis remplie, le premier éléments est alors automatiquement sélectionné, ce qui déclenche l'action performed. Regarde si c'est pas la version de java qui différe entre le browser et eclipse.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Pose le listener dans les combobox après les avoir remplies

    Normalement, quand une combobox est vide puis remplie, le premier éléments est alors automatiquement sélectionné, ce qui déclenche l'action performed. Regarde si c'est pas la version de java qui différe entre le browser et eclipse.
    Oui je rempli bien les comboBox après et toujours le même problème. En fait pour être plus précis j'ai 4 comboBox qui gèrent l'affichage des données d'une jTable. Dans le constructeur de ma classe j'appelle donc comme il se doit la méthode initialize() qui initialise donc bien correctement toutes les données de mes comboBox. Puis j'appelle une méthode qui initialise ma JTable.

    Jusque là tout va bien, tout s'affiche correctement. Mais il faut savoir que lorsqu'on sélectionne une valeur dans une des comboBox, toutes les autres comboBox doivent être réactualisées pour afficher les données affinées correspondantes au choix effectué dans la comboBox précédente.
    Pour cela j'ai donc un Event ActionPerformed sur chaque combo que j'ai donc déclaré comme tu me l'as conseillé, après le remplissage des comboBox.

    Seulement lorsque je sélectionne une valeur dans une des combo, l'action performed est bien déclenché à la réactualisation des 3 autres Combo s'opère.

    Malheureusement lors de cette réactualisation (puisque je rempli à nouveau chaque comboBox) et comme tu me l'a dis :

    Citation Envoyé par tchize_ Voir le message
    Normalement, quand une combobox est vide puis remplie, le premier éléments est alors automatiquement sélectionné, ce qui déclenche l'action performed.
    Donc comment éviter l'actionPerformed lors de la réactualisation ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le mieux, si tu veux suspendre les action pendant que tu change le contenu des combo, c'est un flag que tu positionne avant (flag à toi) et que tu check dans tes listeners.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    un boolean que je met à false lorsque j'effectue une réactualisation et que je réinitialise à true uen fois la réactualisation effectuée et que je vérifie dans le listener en executant le code que s'il est à true. Ca devrait aller n'est-ce pas ?

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Le flag n'a visiblement pas marché, cependant je me disais que peut si au lieu de rmeplir mes comboBox avec des AddItem je crée un model et qu'au lieu de réactualiser mes comboBox avec des addItem (qui visiblement déclenchent le ActionPerformed) je recréait mon model et faisait un setModel ça pourrait résoudre mon problème ...

    Je vais tester ça ...

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Je confirme qu'il s'agit bien de la bonne solution ! le setModel ne déclenche pas le ActionPerformed et donc je n'ai plus de doublon dans mes comboBox.

    Cependant il me reste encore 2 erreurs :

    - La première est que lorsque je reconstruit ma JTable (je reconstruit son model et je le set) en prenant en compte la ou les valeurs selectionnées dans les combo, si la liste de la jtable reconstruite n'est pas vide je me place sur le premier élément de la liste en faisant un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    getJTableLabel().getSelectionModel().setLeadSelectionIndex(0);
    if (!(getJTableLabel().getSelectionModel().isSelectionEmpty())){
    ...
    }
    Ceci fonctionne bien sous eclipse mais pas du tout au niveau du navigateur web.

    - La deuxième est que lorsque je sélectionne une ligne dans ma jTable et que je clique sur un item dans une des comboBox j'ai un plantage mais je n'ai pas encore pu localiser d'où cela pouvait provenir.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Après réflexion il se peut que le second problème ne soit qu'une conséquence du premier.

    Donc en gros il me faut avant tout comprendre comment selectionner automatiquement la première ligne de ma JTable une fois construite.

    Encore une fois mon code (post précédent) fonctionne sous eclipse mais pas dans le web browser, je ne sais pas pourquoi. Si quelqu'un a une idée je suis preneur. En attendant je continue à chercher de mon côté.

Discussions similaires

  1. Probléme récupérer texte <texblock> dans combobox + event IsMouseOver
    Par jerem3000 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 18/05/2010, 03h18
  2. [DEBUTANT - VBA] Problèmes de ComboBox
    Par _Maniak dans le forum Général VBA
    Réponses: 13
    Dernier message: 10/03/2006, 10h02
  3. Problème Applet Java et Win XP SP2
    Par octal dans le forum Applets
    Réponses: 4
    Dernier message: 04/02/2006, 09h57
  4. Problème de ComboBox...
    Par lerouzes dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/01/2006, 18h14
  5. Problème affichage ComboBox et barre déroulante!
    Par ghan77 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/01/2006, 14h09

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