Salve a tutti ho questo problema ho creato una JLabel con icona e inserita nel frame,sempre nel frame volevo inserire una nuova label senza immagine in modo che sembri una scritta sopra l'immagine,come posso fare?
Salve a tutti ho questo problema ho creato una JLabel con icona e inserita nel frame,sempre nel frame volevo inserire una nuova label senza immagine in modo che sembri una scritta sopra l'immagine,come posso fare?
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.
Ultima modifica di andbin; 26-02-2014 a 13:40
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Qualche suggerimento per come fare l'ultimo quello + estremo?perchè le label sono diverse da mettere
Ho risolto grazie