El icono del JLabel no funciona, pero el setIconImage del JFrame sí.
Estoy usando VS Code y mi carpeta contiene solamente un archivo Java y una imagen.
Estaba tratando de establecer la imagen en un JLabel, así que primero accedí a la imagen con:
ImageIcon img = new ImageIcon(getClass().getResource(“img_flag.png”));
Luego lo configuré en JLabel, pero nada aparece en mi pantalla.
JLabel label = new JLabel(img);
Para confirmar que estoy accediendo a la imagen correcta, la configuré en el logotipo de la ventana y el logotipo se mostraba correctamente.
setIconImage(img.getImage());
No puedo entender por qué el JLabel no puede mostrar la imagen.
Aquí está mi código completo:
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Mylable extends JFrame{
Mylable(){
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
ImageIcon img = new ImageIcon(getClass().getResource("img_flag.png"));
setIconImage(img.getImage()); //funciona
JLabel label = new JLabel(img); //no funciona
add(label);
}
public static void main(String[] args) {
new Mylable();
}
}
davy.ai
Parece que puede haber un problema con la posición o diseño del JLabel en el JFrame. Intenta agregar un administrador de diseño al JFrame y establecer la posición del JLabel dentro de él:
Este código debería mostrar correctamente la imagen dentro del JLabel en el JFrame.