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 :

Question sur la gestion des swing


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Question sur la gestion des swing
    Bonjour,
    j'ai remarqué en utilisant une JList que certaines choses sont gérées automatiquement comme :
    - l'acutalisation de l'affichage quand on appuie sur la touche bas/haut du clavier
    - l'acutalisation du JList.setSelectedIndex(index);

    Donc, si j'écris la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void JList_KeyPressed(KeyEvent e){
        if(e.getKeyCode() == KeyEvent.vk_UP || e.getKeyCOde() == KeyEvent.vk_DOWN){
             update_view(JList.getSelectedIndex()); 
       }
    }
    Pour moi, on ne peut pas savoir si la ligne update_view... sera executée avant ou après que l'index ait été mis a jour. Ce qui change le résultat puisque dans un cas on passe à l'item suivant/précédent, et dans l'autre on ne bouge pas.

    Est ce que c'est plsu sur d'écrire (est ce que ca sert à quelque chose ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void system_list_keyReleased(KeyEvent e){
         if(e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN){
              new Thread(new Runnable() {
                   public void run() {
    	        SwingUtilities.invokeLater(new Runnable() {
    		public void run() {
    		     update_view(system_list.getSelectedIndex());
    	             }
                          });
    	   }
               }).start();
          }
    }

    Je pense qu'ici ca ne sert à rien ,puisque ca marche sans, mais est ce que dans un autre cas à peu près similaire (dans lequel on devrait attendre la fin d'un autre listener pour réaliser l'opération par exemple), cette solution serait appropriée??

    Je ne suis pas sur d'avoir compris sont utilité.

    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 907
    Billets dans le blog
    54
    Par défaut
    Peut-etre auras-tu remarque que la JList accepte un ListSelectionListener qui te previens quand la selection dans la liste change ? De cette maniere tu peux eviter ce genre de confusion qui suppose que tu saches comment le controlleur (au sens Model-vue-controlleur) de la JList fonctionne.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut D'accord
    Mais avec ce que j'ai fait, ça résoud quand même le problème? (même si y'avait plus simple)

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 907
    Billets dans le blog
    54
    Par défaut
    Disons que ton implémentation se base sur une supposition à propos de la manière dont le controlleur est implémenté et de son comportement. Normalement on est pas sensé s'attacher à ces comportement qui peuvent éventuellement changer suivant l'implémentation (l'UI délégate qui change l'apparence et le comportement de la liste en fonction du LnF par exemple mais aussi le vendeur de la JVM si celui-ci décide de faire une implémentation de la JList qui lui est propre). On doit uniquement voir et manipuler le composant de manière abstraite (général) et non en fonction de son implémentation concrète. Evidement dans les fait ça il est peu probable qu'une liste change de comportement et il y a fort à parier qu'elles se comportent toutes de cette manière mais bon...

    Utilise ce que j'ai indiqué (attention tu auras probablement des événements de sélection ET de déselection) et tout se passera pour le mieux et ça n'en sera que plus correct. Et puis ca t'éviteras de devoir mettre un MouseListener customisé pour changer la vue de manière similaire lors d'une sélection à la souris... Autant gérer la sélection de manière globale.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/08/2007, 16h49
  2. Réponses: 4
    Dernier message: 13/09/2006, 16h53
  3. question sur la gestion des css
    Par boustor dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/07/2006, 16h57
  4. Quelques questions sur la gestion des droits
    Par sylsau dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2006, 14h11
  5. Question sur la gestion des fenetres MDI
    Par RémiONERA dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/07/2005, 07h58

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