Bonjour,

En cliquant sur "ENTER" dans un JTextField,
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tfSelectedModel.addKeyListener(
  new KeyListener(){
    public void keyReleased( KeyEvent e ){
      if( e.getKeyCode() == KeyEvent.VK_ENTER ){
        progressStart();
        new Thread(new Runnable() {
          public void run() {
            findMatchingModel();
            progressStop();
          }
        }).start();                            
      }
    }
    public void keyTyped(KeyEvent e) {}
    public void keyPressed(KeyEvent e) {}
  }
);
j'exécute la fonction findMatchingModel(), laquelle teste d'abord si le JTextField est vide ou pas.

S'il est vide, j'affiche un message demandant de sélectionner un modèle.
Code :
1
2
3
4
5
6
7
8
9
10
private void findMatchingModel() {
  String brand = tfSelectedBrand.getText();
  String model = tfSelectedModel.getText();
 
  if (model.length() < 1){
    dispMsg("ModelMatching", "select a model !");
    return;
  }
...
}
Le dispMsg est simplement :
Code :
1
2
3
private void dispMsg(String titles, String msg) {
  JOptionPane.showMessageDialog(panelMM, msg, titles, JOptionPane.ERROR_MESSAGE);
}
Ca fonctionne si je clique sur le bouton "OK", mais si j'appuye sur ENTER, le message s'affiche directement.

Quelqu'un saurait-il m'expliquer pourquoi l'event "ENTER" dans le message box n'est pas consommé et que je me retrouve dans une boucle d'affichage du message ?

Merci d'avance pour votre aide.