Java: utilizzare un’icona in una JLabel
La classe javax.swing.JLabel consente di mostrare un breve testo e/o un’immagine.
Per istanziare una label con un testo e un’icona, possiamo utilizzare il seguente costruttore:
JLabel(String text, Icon icon, int horizontalAlignment)
La classe javax.swing.Icon è un’interfaccia implementata, ad esempio, da javax.swing.ImageIcon. Possiamo dunque utilizzare un oggetto di questa classe per assegnare un’icona ad una label:
import javax.swing.JLabel; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.ImageIcon; import javax.swing.BorderFactory; import java.awt.GridLayout; import java.awt.Color; public class GuiTest extends JFrame { public GuiTest(String text) { super(text); ImageIcon icon = new ImageIcon("./images/logo.gif"); JLabel lblA = createLabel("Logo", icon, JLabel.CENTER, JLabel.BOTTOM); JLabel lblB = createLabel("Logo", icon, JLabel.RIGHT, JLabel.CENTER); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(1, 3, 5, 5)); panel.add(lblA); panel.add(lblB); this.setContentPane(panel); this.setSize(200, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public JLabel createLabel(String text, ImageIcon icon, int hPos, int vPos) { JLabel label = new JLabel(text, icon, JLabel.CENTER); label.setHorizontalTextPosition(hPos); label.setVerticalTextPosition(vPos); label.setBorder( BorderFactory.createLineBorder(Color.BLACK) ); return label; } public static void main(String[] args) { new GuiTest("Label Test").setVisible(true); } }
Come si può notare da questo esempio, indichiamo la posizione orizzontale e verticale del testo rispetto all’immagine, ottenendo questo risultato:
E’ anche possibile assegnare alla label un’icona da mostrare quando la label viene disabilitata (richiamando setEnabled(false)), utilizzando il metodo
void setDisabledIcon(Icon disabledIcon)
Di default, l’icona mostrata quando la label è disabilitata è generata automaticamente, ingrigiendo quella esistente:
import javax.swing.JLabel; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.ImageIcon; import javax.swing.BorderFactory; import java.awt.GridLayout; import java.awt.Color; public class GuiTest extends JFrame { public GuiTest(String text) { super(text); ImageIcon icon = new ImageIcon("./images/logo.gif"); ImageIcon disabledIcon = new ImageIcon("./images/denied.gif"); JLabel lblA = createLabel("Logo", icon, JLabel.CENTER, JLabel.BOTTOM); JLabel lblB = createLabel("Logo", icon, JLabel.RIGHT, JLabel.CENTER); JLabel lblC = createLabel("Logo", icon, JLabel.CENTER, JLabel.TOP); lblC.setDisabledIcon(disabledIcon); lblB.setEnabled(false); lblC.setEnabled(false); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(1, 3, 5, 5)); panel.add(lblA); panel.add(lblB); panel.add(lblC); this.setContentPane(panel); this.setSize(300, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public JLabel createLabel(String text, ImageIcon icon, int hPos, int vPos) { JLabel label = new JLabel(text, icon, JLabel.CENTER); label.setHorizontalTextPosition(hPos); label.setVerticalTextPosition(vPos); label.setBorder( BorderFactory.createLineBorder(Color.BLACK) ); return label; } public static void main(String[] args) { new GuiTest("Label Test").setVisible(true); } }
Il risultato ottenuto è questo:
Nessun commento presente.
Devi identificarti per pubblicare un commento.
Nessun trackback
Informazioni sulla memoria in Java
circa 12 anni fa - Nessun commento
Java e le informazioni sulla memoria con la classe Runtime
Leggere da un Readable con la classe Scanner
circa 12 anni fa - Nessun commento
Java, la classe Scanner e la possibilità di utilizzare come fonte un oggetto Readable
La classe LineNumberReader di Java
circa 12 anni fa - Nessun commento
La classe LineNumberReader di Java
Java: Serializzare un oggetto in XML
circa 12 anni fa - Nessun commento
Java, le classi XMLEncoder e XMLDecoder e un esempio di utilizzo per serializzare un JavaBean
Java: Serializzazione e interfaccia Externalizable
circa 12 anni fa - Nessun commento
Serializzare un oggetto in Java con Serializable e Externalizable
JSP: gestire le eccezioni con la direttiva page
circa 13 anni fa - Nessun commento
JSP: gestire le eccezioni con la direttiva page
Creare un modello personalizzato per una JTable
circa 13 anni fa - 1 commento
Creare un modello personalizzato per una JTable
Java: introduzione alla classe JFileChooser
circa 13 anni fa - Nessun commento
Java: introduzione alla classe JFileChooser
Java e Google API: ottenere la lista dei 10 video più votati di Youtube
circa 13 anni fa - Nessun commento
Java e Google API: ottenere la lista dei 10 video più votati di Youtube