Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SIMPLE ET DOUBLE CLIC


Information sur la source

Catégorie :Api Classé sous : clique, simple, double, doubleclick, souris Niveau : Débutant Date de création : 29/08/2005 Vu : 7 085

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

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

Source

  • /*
  • 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);
  • }
  • }
/*
    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);
	}
}

Commentaires et avis

signaler à un administrateur
Commentaire de Nemesys le 14/09/2005 19:37:12

Il existe qd meme bcp plus simple

/*****

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

*****/

signaler à un administrateur
Commentaire de kaloway le 15/09/2005 17:35:18

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.

signaler à un administrateur
Commentaire de akboy le 22/11/2006 14:20:26

Pour info, getClickCount() ne compte que les clics fait dans un interval réduit (pour ma part, je l'utilise et cela fonctionne)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Bloquage CLavier/SOuris [ par rosenfel ] Bonjour à tous,auriez vous des idées concernant un moyen simple et global de désactiver pour une période donnéetout le clavie JAR executable [ par tlehoucq ] Bonsoir everybody, Voila, j'ai cree un jar qui devrait etre executable lorsque l'on double clique dessus mais il ne l'est pas! mon manifest cont evenement double clique ds une JTable [ par devj ] Bonjour J'aimerais que le double clique dans une Jtable soit un événement qui déclenche une méthode.qq sait-il comment celà est possible ?Merci. problème d'affichage de double [ par amel468 ] Bonjour!Je suis en train de développer un convertisseur Franc euro dans une applet avec des composants AWT. l'utilisateur clique sur un panel clavier. différencier un simple click d'un double. [ par bibe ] Bonjour à tous.J'ai un ptit prob avec le nombre de click.je voudrais differencier un simple click d'un double avec getClickCount(), et je m'apercois q Jtree et double clique [ par Never_Summer ] Bien le bonjourVoila tout est dans le theme, comment fai t'on pour donner une action de double clique sur un noeud de mon tree.Je fai une appli en MVC jtree-raffraichissement après clique [ par 13seb13 ] j'ai un pb de rafraichissement sur un jtree. En fait, le jtree se raffraichit bien quand je n'ai pas encore cliqué dessus mais après, plus d mouseMotionLister [ par zhebulonn ] Bonjour, j'ai un problème de detection de mouvement de souris. Dans une JFrame, il y a un JScrollPane dans lequel je dessine un graphique. Les mo Gestion de la molette de la souris [ par gus2647 ] Bonjour, Dans mon application j ai cree un ScrollPanel, et j aimerai pouvoir faire bouger l ascenseur avec la molette de la souris.Est ce que quelqu u Déplacer la souris vers coord + click [ par izt00g00d ] Bonjour,je suis tout ce qu'il y a de plus newbie en java,je cherche à faire une class qui déplacera la souris aux coordonnées x y (exprimés en pixel 0


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.