2016-05-28 1 views
0

J'essaie d'écrire un programme qui me montre les coordonnées x et y lorsque je clique sur le bouton gauche de ma souris, mais cela ne fonctionne pas. La console me montre les coordonnées x et y automatiquement si je lance le programme, mais je veux voir la coordination après un clic de souris.Comment définir un événement mouseClicked?

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.SwingUtilities; 

public class Simple { 
    public static void main(String[] args){ 
     Mouse maus = new Mouse(); 
     maus.mouseClicked(null); 
    } 
} 

Second fichier

import java.awt.*; 
import java.awt.event.*; 

public class Mouse implements MouseListener { 
    public void mouseClicked(MouseEvent e) { 
     double mouseX = MouseInfo.getPointerInfo().getLocation().getX(); 
     double mouseY = MouseInfo.getPointerInfo().getLocation().getY(); 
     System.out.println(mouseX+" "+mouseY); 
    } 
    @Override 
    public void mouseEntered(MouseEvent arg0) {} 

    @Override 
    public void mouseExited(MouseEvent arg0) {} 

    @Override 
    public void mousePressed(MouseEvent arg0) {} 

    @Override 
    public void mouseReleased(MouseEvent arg0) {} 
} 

Répondre

2

Ce que vous faites dans votre code est écrit un MouseListener, mais au lieu de l'ajouter aux composants de l'interface graphique (il sera activé lorsque la souris est cliqué), vous l'appelez vous-même. C'est pourquoi il est exécuté lorsque vous démarrez votre programme.

Ce que vous devez faire est d'utiliser la méthode addMouseListener sur l'un de vos composants GUI, et d'enregistrer votre écouteur.

Il ya un assez bon guide à ce sujet here, également avec des exemples.

+0

Merci pour votre réponse. Je veux obtenir les coordinations à partir de la fenêtre de l'utilisateur à la place du cadre graphique. Le tutoriel me montre seulement comment obtenir la coordination dans le cadre. Tu vois ce que je veux dire? – Ratety

+1

Je pense que la façon dont vous obtenez les coordonnées dans votre code est correcte. le seul problème est avec quand la méthode est appelée –