[Java] Utilisation de la souris

Résolu/Fermé
Foreverson Messages postés 231 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 22 juin 2014 - 20 sept. 2009 à 09:20
 Utilisateur anonyme - 21 sept. 2009 à 10:09
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 !
A voir également:

4 réponses

Foreverson Messages postés 231 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 22 juin 2014 27
20 sept. 2009 à 12:00
UP
0
Utilisateur anonyme
20 sept. 2009 à 12:34
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
0
Foreverson Messages postés 231 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 22 juin 2014 27
20 sept. 2009 à 13:21
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.
0
Utilisateur anonyme
21 sept. 2009 à 10:09
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
0