Simple et double clic

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 698 fois - Téléchargée 26 fois

Contenu du snippet

ce code présente comment detecter un simple ou un double clic de souris.

Source / Exemple :


/*
    Classe DTimer : 

  • /
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class DTimer extends JFrame { /* Attribut
  • /
protected Timer timer; // objet javax.swing.Timer protected int nb=0; /* Constructeur :
  • /
// construit un timer avec un inteval de temps donné par delay public DTimer (int delay) { super ("Demo chrono sans thread"); /* Methode de l'interface ActionListener : necessaire pour l'object javax.swing.Timer methode appelle a intervalle de temps regulier par le timer
  • /
this.timer = new Timer (delay, new ActionListener(){ public void actionPerformed (ActionEvent e) { if (nb==1) System.out.println("simple"); if (nb==2) System.out.println("double"); stopDTimer (); nb=0; } }); this.initGraphic (); addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ if ( isRunning () ) { //this.stopDTimer (); } else // le timer est arrete donc on le lance ou relance { startDTimer (); } nb++; System.out.println(""+nb); } }); } /* Methodes :
  • /
// initialise la partie graphique de la demo protected void initGraphic () { this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); this.setLocation (250, 250); this.setVisible (true); } // lance le compteur de temps public void startDTimer () { this.timer.start (); } // stop le compteur de temps public void stopDTimer () { this.timer.stop (); } // permet de connaitre l'etat d'activite du timer (lance ou non) public boolean isRunning () { return ( this.timer.isRunning () ); } public static void main (String argv []) { new DTimer (400); } }

A voir également

Ajouter un commentaire

Commentaires

cs_Nemesys
Messages postés
10
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
14 septembre 2005
-
Il existe qd meme bcp plus simple

/*****

public void mouseReleased(MouseEvent vi_Event)
{
if( vi_Event.getButton() == MouseEvent.BUTTON1
&& vi_Event.getClickCount() >= 2 )
}

*****/
kaloway
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
30 mars 2011
-
dans ton exemple tu détectes aussi bien 2 simples clic que un double clic. tu n"as aucun moyen de différencier les 2 cas. la définition d' un clic : c'est un clic suivi peut etre de plusieurs clics mais avec lap de temps relativement important entre chaque clic. par contre un double clic : c'est 2 clic dans un lap de temps réduit. ma source propose de savoir le nombre de fois que tu as cliqué au bout d'un lap de temps définir par l'interval du timer.
cs_akboy
Messages postés
2
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
22 novembre 2006
-
Pour info, getClickCount() ne compte que les clics fait dans un interval réduit (pour ma part, je l'utilise et cela fonctionne)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.