2009-08-15 16 views
1

Ist es möglich, eine untergeordnete Komponente in einem JButton zu platzieren und es zu einer Untergruppe von Mausereignissen transparent zu machen, so dass:eine untergeordnete Komponente zu einem JButton Hinzufügen

  • Das Kind Komponente MouseMotionEvent s erhält (so kann es reagieren, indem sie ein angezeigtes Bild zu ändern)
  • klicken Sie drückt noch die JButton „hinter“ dem Kind Komponente

Wenn Sie das Kind-Komponente auf die Schaltfläche hinzufügen, aber keine weiteren Änderungen vornehmen, in dem Bereich klicken o besetzt durch das Kind aktiviert den Knopf nicht.

Ich weiß, dass dies erreicht werden kann, indem Sie eine neue Klasse erstellen, die JButton erweitert, aber ich würde lieber eine untergeordnete Komponente verwenden, die bereits geschrieben wurde.

Hinweis: Dies ist rein aus kosmetischen Gründen. Die untergeordnete Komponente ändert nur ihr eigenes Aussehen. Es führt keine anderen Aktionen als Reaktion auf Klicks aus. Es gibt nur eine Action, ausgelöst durch die Schaltfläche auf die normale Weise.

Antwort

1

Ja, es ist möglich, aber wahrscheinlich gibt es bessere Möglichkeiten, das Aussehen eines JButton auf Maus über zu ändern. Sie können eine ButtonUI erweitern, um dies zu tun. Wenn Sie jedoch eine Komponente über ein JButton ziehen möchten, sollten Sie andere Mausereignisse (z. B. Klicks) an das zugrunde liegende JButton übergeben.

+0

Ich SwingUtilities.convertMouseEvent, um unerwünschte Ereignisse an die Schaltfläche übergeben, die den gewünschten Effekt gibt. – finnw

0

JXLayer ist genau das, was Sie brauchen. Check out https://jxlayer.dev.java.net/ Die Projektseite hat mehrere gute Artikel über JXLayers Verwendung für viele verschiedene Anwendungsfälle.

Verwandte Themen