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 MouseMotionEvents (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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top