Hi Leute,
ich hab mir ne eigene GUI-Komponente geschrieben, die eigentlich nur 3 Striche malt. Die Komponente hat nen MouseMotionListener, der abfrägt, ob sich die Maus innerhalb eines bestimmten Bereichs der Komponente befindet. Wenn ja, dann wird die Komponente blau hinterlegt.
Das ganze sieht so aus:
Wenn man die Maus nach oben oder unten rausbewegt funktioniert alles, wenn ich aber die maus relativ schnell rechts oder links aus der Komponente bewege, dann reagiert das ganze zu langsam und der Hintergrund wird von blau NICHT mehr auf hellgrau zurückgeschrieben..kann ich das ganze irgendwie ändern?
Ich könnte dem Frame nen MouseMotionListener hinzufügen, aber dann hab ich mehr stress mit Abfragen welche Komponente u.s.w.
ich hab mir ne eigene GUI-Komponente geschrieben, die eigentlich nur 3 Striche malt. Die Komponente hat nen MouseMotionListener, der abfrägt, ob sich die Maus innerhalb eines bestimmten Bereichs der Komponente befindet. Wenn ja, dann wird die Komponente blau hinterlegt.
Das ganze sieht so aus:
Code:
public void mouseMoved(MouseEvent m){
if(m.getX() < 4 || m.getX() > super.getWidth() -4 || m.getY() < (super.getHeight() / 2)/2 || m.getY() > (super.getHeight() / 2)/2 + super.getHeight()/2){
isOver = true;
}
else{
isOver = false;
}
repaint();
}
public void paintComponent(Graphics g){
//standartaufrufe der oberklasse..
if(isOver){
g.setColor(Color.blue);
g.fillRect(0,0,super.getWidth(), super.getHeight());
}
else{
g.setColor(Color.lightGray);
g.fillRect(0,0,super.getWidth(), super.getHeight());
}
}
Wenn man die Maus nach oben oder unten rausbewegt funktioniert alles, wenn ich aber die maus relativ schnell rechts oder links aus der Komponente bewege, dann reagiert das ganze zu langsam und der Hintergrund wird von blau NICHT mehr auf hellgrau zurückgeschrieben..kann ich das ganze irgendwie ändern?
Ich könnte dem Frame nen MouseMotionListener hinzufügen, aber dann hab ich mehr stress mit Abfragen welche Komponente u.s.w.