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 ?
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
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.
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.