Question

Est-il possible de placer un composant enfant dans un JButton et la rendre transparente à un sous-ensemble d'événements de souris de sorte que:

  • Le composant enfant reçoit MouseMotionEvents (il peut répondre en modifiant une image affichée)
  • En cliquant sur le déprime encore JButton « derrière » le composant enfant

Si vous ajoutez le composant enfant au bouton, mais sans faire d'autres changements, en cliquant dans la zone occupée par l'enfant ne pas activer le bouton.

Je sais que cela peut être réalisé en créant une nouvelle classe qui étend JButton mais je préfère utiliser un composant enfant qui a déjà été écrit.

Note: ceci est uniquement pour des raisons esthétiques. Le composant enfant ne change son apparence. Il ne fonctionne pas d'autres actions en réponse aux clics. Il y a juste une Action, déclenchée par le bouton de la manière normale.

Était-ce utile?

La solution

Oui, il est possible, mais probablement il y a de meilleures façons de changer l'apparence d'un JButton de la souris. Vous pouvez étendre un ButtonUI à faire. Toutefois, si vous souhaitez déposer un composant sur une JButton, vous devez passer d'autres événements de souris (clics) par exemple au DButton sous-jacent.

Autres conseils

JXLayer est juste la chose dont vous avez besoin. Consultez https://jxlayer.dev.java.net/ Le site du projet a plusieurs bons articles sur l'utilisation de JXLayer pour de nombreux cas d'utilisation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top