[Java] Utilisation de la souris [Résolu/Fermé]

Signaler
Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
-
 Utilisateur anonyme -
Bonjour,
je débute en Java et j'ai besoin de votre aide pour résoudre un petit problème :

Comment faire :

if( "personne n'a cliqué sur un bouton de la souris" ){
exécuter la fonction
}

Autrement dit, j'aimerais lancer la fonction uniquement au début d'un programme, et dès que quelqu'un s'est servi de la souris, cette fonction ne s'exécute plus.

Désolé si je ne suis pas si très clair.

Merci d'avance !

4 réponses

Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
25
UP

Salut,

Un exemple:

import javax.swing.*;
   import java.awt.event.MouseEvent;
   import java.awt.event.MouseAdapter;

    public class UneClasse extends JFrame
   {
      private static boolean clique = false;
   
       public UneClasse()
      {
         super("CLIQUER dans la fen\u00eatre (sur X pour terminer):"); // titre
         setSize(400, 100); // dimensions frame (redimensionnable par défaut)
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setVisible(true);
         addMouseListener(new Moustener());
      }
   
       public static void main(String[] args)
      {
         new UneClasse();
      }
   
       private class Moustener extends MouseAdapter
      {
          public void mouseClicked(MouseEvent evt)
         {
            String info = "";
            if (clique == false) // quelqu'un à cliqué
            {
               clique = true;
               info = "\nLe traitement unique: \n"
                  + "\nBlabla\nBlabla\nBlablabla\n";
               javax.swing.JOptionPane.showMessageDialog(null,info);
            }
            else  // les autres cliques
            {
               info = "\nUn autre traitement.";
               javax.swing.JOptionPane.showMessageDialog(null,info);
            }
         }
      }
   }


Cordialement,

Dan
Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
25
Comme je te l'ai dit, je débute en Java donc je ne comprends pas tout.

Je vais essayer de voir ça, je passe en résolu, quitte à revenir plus tard.

Merci.

Re,

Un clique ne peut être détecté que s'il est fait dans le composant (component) d'une fenêtre.
Dans notre cas c'est nimporte où dans la JFrame puisque nous n'avons ni boutons, ni zônes de saisie...

Lorsqu'on dit "clique" c'est en fait un clique ET relachement du bouton car nous utilisons la méthode mouseClicked

Voir les 2 classes utilisées (mais aussi les autres...) dans la JavaDoc:

https://docs.oracle.com/javase/6/docs/api/

Package java.awt.event
Class MouseAdapter et ses méthodes dont mouseClicked utilisée dans notre exemple.
Et
Package java.awt.event
Class MouseEvent

Remarque:

On peut remplacer javax.swing.JOptionPane.showMessageDialog(null,info); par
System.out.println(info);

Dan