Hallo,
ich habe mehrere Labels die Bilder als Aussehen/Schaltfläche haben.
Wenn man ein Label anklickt öffnet sich ein Popup Menü.
Die Bilder sind nicht komplett ausgefüllt, sprich es gibt transparente Flächen.
Dadurch enstehen 3 Fälle:
1. Ich klicke das Label an. Das angeklickte Pixel ist nicht transparent und gehört zum angeklickten Label
-> Es öffnet sich das Popup Menü vom angeklickten Label
2. Ich klicke das Label an. Das angeklickte Pixel ist transparent und gehört zum angeklickten Label
-> Es öffnet sich das Popup Menü vom angeklickten Label, sollte sich aber nicht öffnen, da man ja visuell nicht auf das Label gedrückt hat.
3. Ich klicke das Label an. Das angeklickte Pixel ist nicht transparent, aber gehört visuell nicht zum angeklickten Label, sondern das von neben an, da sich die Labels überlagern. Das eigentliche Pixel vom angeklickten Label ist also transparent und das darunterliegende "Pixel" vom darunterliegenden Label hat Farbe.
-> Es öffnet sich das Popup Menü vom angeklickten Label, sollte aber das von nebenan öffnen
Mit dem 2. Fall kann ich leben, aber der 3. ist echt nervig.
Was wäre die einfachste Möglichkeit den 3. Fall zu verbieten?
Im Prinzip müsste ein Abfrage kommen ob das Pixel des Objektes welches angeklickt wurde nicht transparent ist und wenn dieser Fall auftritt er beim Nachbar schaut.
Die Funktion ob ein Pixel transparent ist, habe ich geschrieben.
Leider ist es kein ActionHandler o.ä. wo man eine if Abfrage schreiben könnte.
Ich habe ja nur die Zeile
Kennt ihr eine einfache Lösung? Beispielcode von ähnlichen Problemen auf anderen Seiten wäre auch toll.
Finde nichts bei Google..
ich habe mehrere Labels die Bilder als Aussehen/Schaltfläche haben.
Wenn man ein Label anklickt öffnet sich ein Popup Menü.
Die Bilder sind nicht komplett ausgefüllt, sprich es gibt transparente Flächen.
Dadurch enstehen 3 Fälle:
1. Ich klicke das Label an. Das angeklickte Pixel ist nicht transparent und gehört zum angeklickten Label
-> Es öffnet sich das Popup Menü vom angeklickten Label
2. Ich klicke das Label an. Das angeklickte Pixel ist transparent und gehört zum angeklickten Label
-> Es öffnet sich das Popup Menü vom angeklickten Label, sollte sich aber nicht öffnen, da man ja visuell nicht auf das Label gedrückt hat.
3. Ich klicke das Label an. Das angeklickte Pixel ist nicht transparent, aber gehört visuell nicht zum angeklickten Label, sondern das von neben an, da sich die Labels überlagern. Das eigentliche Pixel vom angeklickten Label ist also transparent und das darunterliegende "Pixel" vom darunterliegenden Label hat Farbe.
-> Es öffnet sich das Popup Menü vom angeklickten Label, sollte aber das von nebenan öffnen
Mit dem 2. Fall kann ich leben, aber der 3. ist echt nervig.
Was wäre die einfachste Möglichkeit den 3. Fall zu verbieten?
Im Prinzip müsste ein Abfrage kommen ob das Pixel des Objektes welches angeklickt wurde nicht transparent ist und wenn dieser Fall auftritt er beim Nachbar schaut.
Die Funktion ob ein Pixel transparent ist, habe ich geschrieben.
Leider ist es kein ActionHandler o.ä. wo man eine if Abfrage schreiben könnte.
Ich habe ja nur die Zeile
Java:
label.setComponentPopupMenu(new Custom_Popup(..));
Kennt ihr eine einfache Lösung? Beispielcode von ähnlichen Problemen auf anderen Seiten wäre auch toll.
Finde nichts bei Google..