2011-02-26 2 views
2
documentDOM.addEventListener("click", new EventListener() { 
          public void handleEvent(Event evt) { 

           if (evt.getType().equals("click")) { 
            System.out.println("hello"); 
            MouseEvent mouseIvent = (MouseEvent) evt; 
            int screenX = mouseIvent.getXOnScreen(); 
            int screenY = mouseIvent.getYOnScreen(); 
            System.out.println("screen(X,Y) = " + screenX + "\t" + screenY); 
           } 
          } 
         }, true); 

J'ai besoin de localiser un emplacement de pixel spécifique sur mon application Java. Cette application Java peut être fenêtrée ou agrandie.comment obtenir la position de la souris d'une application Java?

Mon code ne renvoie pas les entiers en quelque sorte. cet événement se déclenche lorsque le message hello est craché.

+0

Vous devez ajouter un 'MouseListener' sur votre appareil pour écouter les événements de la souris sur la composant – Alpine

Répondre

4

La clé est que vous devez ajouter un MouseListener au composant qui compte les emplacements de clic:

public class LocationPrinter extends MouseAdapter { 
    public static void main(String args[]) { 
    JPanel panel = new JPanel(); 
    panel.setPreferredSize(new Dimension(300, 200)); 
    panel.addMouseListener(new LocationPrinter()); 
    JFrame frame = new JFrame("Location Window"); 
    frame.getContentPane().add(panel); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
    } 
    @Override 
    public void mouseClicked(MouseEvent me) { 
    int screenX = me.getXOnScreen(); 
    int screenY = me.getYOnScreen(); 
    System.out.println("screen(X,Y) = " + screenX + "," + screenY); 
    } 
} 
1
//http://www.geekssay.com/java-program-to-get-mouse-coordinates/ 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
class TestInner { 
 private JFrame f; 
 private JTextField tf; 
  
 public TestInner() { 
 f = new JFrame ("Inner classes example"); 
 tf = new JTextField(30); 
 } 
  
 class MyMouseMotionListener extends MouseMotionAdapter { 
 public void mouseDragged(MouseEvent e) { 
 String s = "Mouse dragging: X = "+ e.getX() 
 + " Y = " + e.getY(); 
 tf.setText(s); 
 } 
 } 
  
 public void launchFrame() { 
 JLabel label = new JLabel("Click and drag the mouse"); 
 // add componers to the frame 
 f.add(label, BorderLayout.NORTH); 
 f.add(tf, BorderLayout.SOUTH); 
 // Add a listener that uses an Inner class 
 f.addMouseMotionListener(new MyMouseMotionListener()); 
 f.addMouseListener(new MouseClickHandler()); 
 // Size the frame and make it visible 
 f.setSize(300, 200); 
 f.setVisible(true); 
} 
  
 public static void main(String args[]) { 
 TestInner obj = new TestInner(); 
 obj.launchFrame(); 
 } 
} 
  
class MouseClickHandler extends MouseAdapter { 
  
// We just need the mouseClick handler, so we use 
 // an adapter to avoid having to write all the 
 // event handler methods 
  
 public void mouseClicked(MouseEvent e) { 
 // Do stuff with the mouse click... 
 } 
} 
Questions connexes