2017-10-17 6 views
0

Ich möchte einen mouseListener machen, der jedes Mal ausgelöst wird, wenn die Maus über ein Rechteck (oder einige Koordinaten im Fenster) schwebt. Ich dachte über mouseEntered verwenden, aber dass nur ausgelöst, wenn Sie mit der Maus auf dem Bildschirm bewegen, nicht ein Rechteck usw. (Heres, was ichWie man einen mouseListener zu einem graphics2D Rechteck hinzufügt

versuchte
public void mouseEntered(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    if(mx >= 1000/2 && mx <= 1000/2 + 380) { 
     if(my >= 300 && my <= 390) { 
      System.out.println("test"); 
     } 
    } 

} 

) aber natürlich, die nicht funktionierten. Ich weiß, dass es wahrscheinlich eine Frage wie diese gibt, aber ich konnte sie nicht finden und ich konnte nichts finden, was genau zu meiner Frage passt.

EDIT: Ich erkannte, dass MousEntered war falsch und es ist tatsächlich mouseMoved! Heres der Code:

public void mouseMoved(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    if(mx >= 1000/2 && mx <= 1000/2 + 380) { 
     if(my >= 300 && my <= 390) { 
      System.out.println("test"); 
     } 
    } 
} 

Antwort

0

einen Blick auf diese:

https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

Und:

mouseEntered will not execute

Sie sollten einige hilfreiche Hinweise und Antworten finden! Versuchen Sie auch, "mx" und "my" an die Konsole auszugeben, um sicherzustellen, dass Sie die richtigen Koordinaten haben.

+0

Hat mir nicht wirklich geholfen, ich möchte nur, dass die mouseEntered-Methode ausgelöst wird, wenn die Maus ein Rechteck anstelle des Fensters eingibt. –

Verwandte Themen