identifiant un double clic dans Java

Je veux savoir comment effectuer une action lorsque la souris est cliquée deux fois dans un composant.

public void mouseClicked(MouseEvent event) { if (event.getClickCount() == 2) { System.out.println("double clicked"); } } 

En supposant que vous voulez dire dans Swing, assignez un MouseListener à votre composant:

 addMouseListener(new MouseAdapter(){ @Override public void mouseClicked(MouseEvent e){ if(e.getClickCount()==2){ // your code here } } }); 

Référence:

  • Tutoriel Java: Comment écrire un écouteur de souris

Le e.getClickCount()==2 n’est pas suffisant si vous souhaitez autoriser vos utilisateurs à effectuer plusieurs clics doubles dans un délai court. Vous êtes limité par la configuration du bureau. Vous pouvez l’obtenir en regardant le résultat de Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");

Une bonne façon de contourner le problème est de ne pas utiliser la getClickCount() mais d’utiliser une Timer où vous pouvez choisir l’intervalle entre vos clics et gérer vous-même le nombre (très simple).

Le code associé:

 boolean isAlreadyOneClick; @Override public void mouseClicked(MouseEvent mouseEvent) { if (isAlreadyOneClick) { System.out.println("double click"); isAlreadyOneClick = false; } else { isAlreadyOneClick = true; Timer t = new Timer("doubleclickTimer", false); t.schedule(new TimerTask() { @Override public void run() { isAlreadyOneClick = false; } }, 500); } } 

Testé avec Win Xp OS et parfait.