Bonjour, je commence à avoir lu beaucoup d articles sur l'EDT, les threads, mais je reste dans le doûte. Faut il que j'utilise un swingworker ou bien swingutilities.invokeLater (comme ci dessous, code simplifié) ? Sur quels critères doit on décider ?
En fait j'ai surtout besoin d'un thread depuis que je veux rajouter un glasspane d'attente pour ma méthode P120cleIsOK qui dure environs 2 secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class A110StdListener implements KeyListener { @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER P300traitement(); } public void P300traitement(){ vue.getGlassPane().setVisible(true); SwingUtilities.invokeLater(new Runnable() { public void run() { boolean isOk = lastContexte().P120cleIsOK(); vue.getGlassPane().setVisible(false); } }); pack(); //--> attente d'un nouvel événement de l'utilisateur
Pour mémoire, cette méthode
- agit (modif texte, couleur etc...) sur les composants de mon panel (JComboBox, JTextField, JLabel ...)
- fait des accès bdd (lecture, mise à jour)
J'ai trouvé pas mal cette page Oracle SDN, clair et concise.
Partager