L'aggiunta di un componente figlio a un JButton
-
16-09-2019 - |
Domanda
E 'possibile inserire un componente figlio all'interno di una JButton
e rendere trasparente a un sottoinsieme di eventi del mouse in modo che:
- Il componente bambino riceve
MouseMotionEvent
s (in modo che possa rispondere modificando un'immagine visualizzata) - Cliccando deprime ancora la
JButton
"dietro" il componente figlio
Se si aggiunge il componente figlio al pulsante ma non fare altri cambiamenti, cliccando nella zona occupata dal bambino non attivare il pulsante.
So che questo può essere raggiunto con la creazione di una nuova classe che estende JButton
ma preferirei usare un componente figlio, che è già stato scritto.
Nota: questo è puramente per ragioni estetiche. Il componente figlio cambia solo il proprio aspetto. Esso non esegue altre azioni in risposta ai clic. C'è solo un Action
, innescata dal pulsante in modo normale.
Soluzione
Sì, è possibile, ma probabilmente ci sono modi migliori per cambiare l'aspetto di un JButton al passaggio del mouse. È possibile estendere un ButtonUI per farlo. Tuttavia, se si vuole far cadere un componente su un JButton, si dovrebbe passare altri eventi del mouse (per esempio scatti) per il JButton sottostante.
Altri suggerimenti
JXLayer è solo la cosa avete bisogno. Scopri https://jxlayer.dev.java.net/ Il sito del progetto ha diversi buoni articoli su l'uso di JXLayer per molti casi d'uso differenti.