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:
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:
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