Hallo Leute,
ich habe ein Panel, worin beliebig viele Buttons eingefügt werden. Alle eingefügten Buttons befinden sich in einer Map. Ich hoffe der Name des Themas ist nicht zu falsch gewählt.
Alle Buttons haben ausserdem einen MouseListener, der ihnen beim drüberfahren Borders gibt, bzw beim Verlassen wieder entfernt.
Jetzt haben aber nicht nur diese Anzahl beliebiger Buttons einen MouseListener, sondern auch andere Componenten auf dem Frame.
Meine Frage ist, wie ich überprüfen kann, ob es sich bei dem Objekt, worüber die Maus sich befindet um ein Button handelt, oder um eine andere Componente. Handelt es sich um ein Button, gehe ich mit entrySet die Map durch und überprüfe jede Position, ob sie mit der Componente worüber sich die Maus befindet übereinstimmt.
Ich denke es gibt da zwei Möglichkeiten:
Entweder einen Extra-MouseListener nur für diese Buttons.
Oder ich überprüfe irgendwie, bevor ich die HashMap durchgehe, ob es sich um diese Buttons handelt.
Ich habe mich für letzteres entschieden und mache das gerade so(bei mouseEntered):
Was halten die erfahrenen Javaprogrammierer von dieser Methode?
ich habe ein Panel, worin beliebig viele Buttons eingefügt werden. Alle eingefügten Buttons befinden sich in einer Map. Ich hoffe der Name des Themas ist nicht zu falsch gewählt.
Alle Buttons haben ausserdem einen MouseListener, der ihnen beim drüberfahren Borders gibt, bzw beim Verlassen wieder entfernt.
Jetzt haben aber nicht nur diese Anzahl beliebiger Buttons einen MouseListener, sondern auch andere Componenten auf dem Frame.
Meine Frage ist, wie ich überprüfen kann, ob es sich bei dem Objekt, worüber die Maus sich befindet um ein Button handelt, oder um eine andere Componente. Handelt es sich um ein Button, gehe ich mit entrySet die Map durch und überprüfe jede Position, ob sie mit der Componente worüber sich die Maus befindet übereinstimmt.
Ich denke es gibt da zwei Möglichkeiten:
Entweder einen Extra-MouseListener nur für diese Buttons.
Oder ich überprüfe irgendwie, bevor ich die HashMap durchgehe, ob es sich um diese Buttons handelt.
Ich habe mich für letzteres entschieden und mache das gerade so(bei mouseEntered):
Java:
Object obj = e.getSource();
if(obj.getClass().getName().equals("bla.Blabla")){ //es geht um diese Zeile
Map<String, Blabla> map= xy.getTileMap();
for(Entry<String, Blabla> m : map.entrySet()){
if(obj.equals(m.getValue())){
//Ereignis
}
}
}
Was halten die erfahrenen Javaprogrammierer von dieser Methode?