Ci sono diverse possibilità, alcune "pulite" altre meno. Una possibilità banale è quella di fare qualche "pastrocchio" a livello di layout ovvero riuscire a mettere la label con la scritta in modo che sia sopra la label che ha la icona. A parte che non è particolarmente bello e potrebbe essere più o meno complicato a seconda se usi già un layout manager o no. Ma comunque il punto è che la posizione della icona non la decidi di per sé tu (a parte gli allineamenti e i gap che puoi impostare in JLabel) ma è JLabel che decide la posizione esatta.
Altra soluzione è di fare la "sovraimpressione" a monte, ovvero creare una nuova immagine in cui disegni la immagine originale più la scritta.
Ulteriore soluzione è la implementazione specifica della interfaccia Icon. La tua implementazione incapsula il Icon della immagine e poi la disegna e "al volo" disegna anche il testo.
Quale scegliere dipende anche da se/quando/quanto deve poter cambiare il testo durante l'uso della tua applicazione.
Ah, soluzione ancora più estrema: se non è un problema e ti va bene tenere separata la immagine dalla label (quindi avere un componente solo per immagine+scritta), puoi implementare un tuo componente che estende es. JPanel e in cui disegni immagine e scritta. Questa soluzione è la più flessibile perché puoi anche gestire ed "esporre" eventualmente la mutabilità della scritta come ti pare.


Rispondi quotando