es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Java GUI pintar imagen en etiquetas

Quiero agregar una imagen que estará en el panel y también en las etiquetas, pero no sé cómo hacerlo.

mi código:

JFrame frame = new JFrame();
JPanel panel = new JPanel();
JPanel mainPanel = new JPanel();

panel.setLayout(new GridLayout(5, 5));
for (int i = 0; i < 5; i++) 
    for (int j = 0; j < 5; j++) 
    {
        JLabel label = new JLabel();
        label.setPreferredSize(new Dimension(50, 50));
        label.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        panel.add(label);
    }

mainPanel.add(panel);
frame.add(mainPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);

Mi imagen:

View post on imgur.com

Lo que quiero hacer:
https://i.stack.imgur.com/ZLPqF.png

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para agregar una imagen al panel y las etiquetas, puedes utilizar la clase ImageIcon en Java.

    1. Primero, descarga la imagen que deseas añadir y guárdala en el directorio de tu proyecto.
    2. Crea un objeto ImageIcon y pasa la ruta de la imagen a su constructor.

    3. Utiliza el objeto ImageIcon para crear un nuevo objeto JLabel y establece la imagen como su icono.

    4. Agrega el nuevo objeto JLabel al panel.

    Aquí tienes un fragmento de código actualizado con las modificaciones necesarias para mostrar la imagen:

    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    JPanel mainPanel = new JPanel();
    
    panel.setLayout(new GridLayout(5, 5));
    for (int i = 0; i < 5; i++) 
        for (int j = 0; j < 5; j++) 
        {
            ImageIcon icon = new ImageIcon("w0Ssy.png"); // Reemplaza la ruta con la tuya
            JLabel label = new JLabel(icon);
            label.setPreferredSize(new Dimension(50, 50));
            label.setBorder(BorderFactory.createLineBorder(Color.BLACK));
            panel.add(label);
        }
    
    mainPanel.add(panel);
    frame.add(mainPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setLocationByPlatform(true);
    frame.setVisible(true);
    

    Esto mostrará la imagen tanto en el panel como en las etiquetas. Si deseas escalar la imagen para ajustarla a la etiqueta, puedes utilizar el constructor de ImageIcon que toma como argumentos el ancho y el alto, y establecer las dimensiones del JLabel en consecuencia.

Comments are closed.