MouseEntered mit X und Y Koordinaten

Diskutiere MouseEntered mit X und Y Koordinaten im Allgemeine Java-Themen Forum; Hallo liebe Community, ich bin gerade dabei, etwas in Java herumzutesten, und bin auf ein Problem gestoßen, wobei ich nicht weiß, wieso es so ist...

  1. HiImSkulte
    HiImSkulte Mitglied
    Hallo liebe Community,
    ich bin gerade dabei, etwas in Java herumzutesten, und bin auf ein Problem gestoßen, wobei ich nicht weiß, wieso es so ist oder wie ich es lösen soll, da Google Recherche nichts gebracht hat. (Trifft nicht auf mein spezielles Programm zu)

    Und zwar,
    im mouseMoved Event wird nach der X und Y Koordinate abgefragt um die Position des Cursors zu ermitteln.
    Nun kann ich mit folgendem Code bei mouseClicked, mousePressed und mouseReleased bequem abfragen ob sich die Maus auf einem Knopf oder ähnlichem befindet und eine Anweisung reinschreiben:
    Code (Java):
    @Override
        public void mouseClicked(MouseEvent e) {
            if ((mousex >= 200 && mousex <= 400) && (mousey >= 50 && mousey <= 150)) {
                playClicked = true;
            }
        }
    Wenn ich allerdings die gleiche If-Abfrage bei mouseEntered reinschreibe, passiert nichts.

    Meine Frage:
    Kann ich bei mouseEntered mit X und Y Koordinaten des Mauszeigers eine Anweisung ausführen lassen?

    Dieser Code funktioniert nicht:
    Code (Java):
    public void mouseEntered(MouseEvent e) {
            if ((mousex >= 200 && mousex <= 400) && (mousey >= 50 && mousey <= 150)) {
                playClicked = true;
            }  
        }

    Mein Ziel ist es, dass wenn der Cursor über einen Knopf geht, die Farben von dem Knopf geändert werden.
    Ich hoffe es war verständlich formuliert, danke für Rückmeldungen! :)
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. Robat
    Robat Aktives Mitglied
    Hey HiImSkulte,

    nicht so kompliziert denken. Die Koordinatenabfrage macht die Methode schon intern für dich! :)
    Du musst nur prüfen welche Komponente es ist.

    Also bspw:

    Code (Java):

    public void mouseEntered(MouseEvent e)
    {
         if(e.getSource() == mySuperCoolButton)
         {
                mySuperCoolButton.setBackground(Color.RED);
         }
    }
     
    Gruß
    Robert
     
  4. HiImSkulte
    HiImSkulte Mitglied
    @Robat
    Habe den Button einfach per g.fillRoundRect(...); gemacht. (Graphics = g), deswegen wollte ich es per X und Y machen weil ich doch keine Variable für der Button festlegen kann.
    Danke!
     
  5. X5-599
    X5-599 Aktives Mitglied
    Hast du alle deine Rechtecke in einer Klasse oder für jedes Rechteck eine eigene gemacht?

    Wenn du zB alle in einer Klasse hast, bräuchtest du nur die Methode mouseMoved. Die trackt ja jede Bewegung auf der grafischen Oberfläche deiner Klasse.
     
  6. Viktim
    Viktim Aktives Mitglied
    Hey, was ich mich frage ist, wo du mousex und mousey herbekommst, wenn nicht von dem event... :D
     
  7. HiImSkulte
    HiImSkulte Mitglied
    Habe mousex und mousey von der mouseMoved Methode, und habe alle Rechtecke und was gezeichnet wird in einer anderen Klasse. Bei mouseMoved macht er es aber nur wenn sich die Maus auf dem Knopf hin und her bewegt. Bei mouseEntered aber in einem Bereich dauerhaft bis sie wieder rausgeht.

    Gruß Skulte
     
  8. X5-599
    X5-599 Aktives Mitglied
    Kannst du ein kleines Bespiel posten?
     
  9. HiImSkulte
    HiImSkulte Mitglied
    Also, meine mouseMoved Methode:
    Code (Java):
    public static void mouseMoved(mouseEvent e) {
         mousex = e.getX();
         mousey = e.getY();
    }
     
    Habe es jetzt hinbekommen, mit folgendem Code:
    Code (Java):
        public void mouseMoved(MouseEvent e) {
            mousex = e.getX();
            mousey = e.getY();
           
            // update button hovered
            if ((mousex >= DrawObjects.menuButtonBackgroundX && mousex <= DrawObjects.menuButtonBackgroundX + 50) && (mousey >= 18 && mousey <= 68)) {
                DrawObjects.menuButtonBackground = 0xF2F2F2;
                DrawObjects.menuButtonLines = 0x3E3E42;
            } else if ((mousex != DrawObjects.menuButtonBackgroundX && mousex != DrawObjects.menuButtonBackgroundX + 50) && (mousey != 18 && mousey != 68)) {
                DrawObjects.menuButtonBackground = 0x3E3E42;
                DrawObjects.menuButtonLines = 0xF2F2F2;
            }
        }
    Danke! :)
     
Die Seite wird geladen...

MouseEntered mit X und Y Koordinaten - Ähnliche Themen

Canvas löschen über MouseEntered in Textfeld
Canvas löschen über MouseEntered in Textfeld im Forum Java Basics - Anfänger-Themen
Label Array in mouseEntered vergleichen
Label Array in mouseEntered vergleichen im Forum Java Basics - Anfänger-Themen
AutoScroll on MouseEntered...
AutoScroll on MouseEntered... im Forum AWT, Swing, JavaFX & SWT
MouseEnteredEvent von verdeckten JPanel auslösen
MouseEnteredEvent von verdeckten JPanel auslösen im Forum AWT, Swing, JavaFX & SWT
MouseEntered(?) für jeden Node im JTree
MouseEntered(?) für jeden Node im JTree im Forum AWT, Swing, JavaFX & SWT
Thema: MouseEntered mit X und Y Koordinaten