# Mauskoordinaten abfragen



## 777 (11. Feb 2006)

Hallo Leute,
Ich möchte gerne ein Spiel namens "Applecatch" schreiben.
Dazu sollen per Zufall Kreise auf dem Monitor auftauchen, die man mit der Maus anklicken muss- dann verschwinden die Kreise.
Ich weiß nur nicht, wie man bei jedem Klick abfragt, an welcher Position der Benutzer hinklickte.
Mein Code ist das hier.
Gibts vielleicht ne Funktion 

int mausx = 0;
mausx= getMouse... oder sowas ???




```
import java.awt.*;
import java.applet.*;

public class Applecatch extends java.applet.Applet implements Runnable
{
 int f1=0,f2=0,f3=0,f4=0,a=0,b=0,h=0,posx=0,posy=0,mausx=0,mausy=0;
 
 Thread Apfelschiessen = null;
  
 public void init()
 {
  setLayout(null);
  setSize(400,400);
  
  
  
  //Maus MAUS Maus MAUS Maus MAUS Listener
  Listen Mauslistener = new Listen();
  this.addMouseListener(Mauslistener);
  //Maus MAUS Maus MAUS Maus MAUS Listener ENDE
 }  
 
 
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 
 class Listen extends java.awt.event.MouseAdapter
 {
     public void mousePressed(java.awt.event.MouseEvent Ereignis)
     {
       Object maus = Ereignis.getSource();
       if(maus==Applecatch.this)
       formdruck(Ereignis);
   
        
     }  
    
    
 }  
 
 
  
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 //MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS MAUS
 
 
 public void run()
 {
        while(true)
        {
        repaint();
        
        try
        {
        Apfelschiessen.sleep(800);
        }
        
        catch(InterruptedException e)
        {
            
        }   
        
        
        }
 }
 
 public void start()
 {
 Thread Apfelschiessen = new Thread(this);   
 Apfelschiessen.start();
 } 
 
      public void paint(Graphics g)
      {
        f1=(int)(Math.random()*200);
        f2=(int)(Math.random()*200);
        f3=(int)(Math.random()*200);
        f4=(int)(Math.random()*200);
        
        posx=(int)(Math.random()*300+10);
        posy=(int)(Math.random()*300+10);
        b=(int)(Math.random()*100+10);

        g.setColor(new Color(f1,f2,f3,f4));  
        g.fillOval(posx,posy,b,b); 
      }   
     






//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE 
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE

        void formdruck(java.awt.event.MouseEvent Ereignis)
        {
        mausx=//???????????????????????  

        }  

//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE 
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE
//OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE OBJEKTE


}
```


----------



## Redfrettchen (11. Feb 2006)

Hi,
du musst mit addMouseListener(MouseListener) einen Event-Listener für die Maus deinem Applet zuweisen. Dieser MouseListener hat die Methode mousePressed(MouseEvent e) (du musst also das Paket java.awt.event importieren), wo du den Code für deine Abfrage implementieren musst (also wenn die Maus gedrückt wird, wird hier ein Event ausgelöst) Entweder du machst es als anonyme Klasse

```
addMouseListener(
    new MouseListener() {
         public void mousePressed(MouseEvent e) {
             //code
         }
    }
);
```

oder als interne Klasse


```
addMouseListener(new MyMouseListener());
....
class MyMouseListener() extends MouseAdapter {
     public void mousePressed(MouseEvent e) {
         //code
     }
}
```

Am besten speicherst du deinen Kreis ab (als Ellipse2D würd ich das machen) und überprüfst bei jedem Mausklick, ob der gedrückte Punkt darin enthalten ist (kreis.contains(e.getX(),e.getY())). Hardcore kann man natürlich auch den Mittelpunkt des Kreises und seinen Radius speichern und dann die Länge der Strecke vom Mausklickpunkt zum Mittelpunkt gegen den Radius prüfen .

Lies dir am besten was zur Event-Listener Struktur durch, dann wird das alles klarer.


----------

