mouseX und mouseY in MouseInfo

RegenSonne

Aktives Mitglied
Hallo, ich habe ein Programm geschrieben, es an Freunde verschickt und überall gibt es den selben Fehler...

Das Problem:
An jedem Pc wird die mouseX und Y Koordinate anders "angezeigt"
Um die richtige Koordinate zu finden musste ich in der draw klasse x - 320 und y -160 machen. bei meinem Laptop war es -40 und - 40
gibt es einen bessereren weg als diesen, der bei allen geräten funkt die auch andere größen haben von der displaygröße her:

Java:
int mouseX, mouseY;
 mouseX = MouseInfo.getPointerInfo().getLocation().x - 320;
  mouseY = MouseInfo.getPointerInfo().getLocation().y - 160;


LG und danke für alle Antworten :)
 

AndyJ

Bekanntes Mitglied
MouseInfo gibt dir ja nur die absolute Position am Screen an. Wenn du eine UI gebaut hast (ich nehme mal an mit Swing), dann musst du nur einen Mouselistener an den Frame anfuegen (siehe Javadoc java.awt.Component.addMouseListener). Mit JavaFX geht's aehnlich. MouseInfo benutzt man normalerweise, wenn man die Mausposition auch dann wissen will, wenn der Nutzer die Maus ausserhalb der UI bewegt. Dann musst du die Relation der Position zu deinem Programm aber selber ausrechnen.

Cheers,
Andy
 

RegenSonne

Aktives Mitglied
Ah habs vielen dank ^^
Ja habe den Beitrag grade erst hier gesehen.. srry :c

Vielen Dank das hat mir sehr geholfen jz klappt es überall :DD

Bestes Forum (y)

LG

Lösung:
Java:
 public Draw() {
  addMouseMotionListener(new MouseMotionListener() {
   
   @Override
   public void mouseMoved(MouseEvent e) {
    mouseX = e.getX();
    mouseY = e.getY();
    if(Frame.gameactiv) {
    mouseGx = e.getX();
    mouseGy = e.getY();
    }
    repaint();
   
   }
   
   @Override
   public void mouseDragged(MouseEvent e) {
    // TODO Auto-generated method stub
   
   }
  });
 }
 

Neue Themen


Oben