Java - ¿Como agregar una imagen a un panel con un mouseListener?

 
Vista:
sin imagen de perfil
Val: 98
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

¿Como agregar una imagen a un panel con un mouseListener?

Publicado por Francisco Emmanuel (60 intervenciones) el 22/02/2020 03:27:22
Tengo el siguiente programa creo una ventana con 2 paneles uno ubicado en la parte izquierda y otro ubicado en la derecha en el panel de la izquierda tengo varias imágenes con logotipos de marcas lo que quiero hacer es que cuando pase el cursor del mouse por encima de una de las imágenes en el panel derecho se coloque una imagen del producto referente sobre la imagen de la marca en donde se encuentra el cursor que pero no se como hacerlo tengo este código pero no funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class Catalogo {
 
    private JFrame ventana;
    private JPanel panelD, panelI;
    private JLabel img1, img2, img3, img4, img5;
    String ruta = "src/img/";
 
    public Catalogo() {
 
        ventana = new JFrame();
        panelD = new JPanel();
        panelI = new JPanel();
        img1 = new JLabel();
        img2 = new JLabel();
        img3 = new JLabel();
        img4 = new JLabel();
        img5 = new JLabel();
        this.atributos();
        this.armado();
        this.ecuchas();
        this.lanazar_IGU();
    }
 
    public void atributos() {
        ventana.setSize(800, 390);
        ventana.setResizable(true);
        panelI.setLayout(new BoxLayout(panelI, BoxLayout.Y_AXIS));
        panelI.setBackground(Color.BLUE);
        panelD.setBackground(Color.red);
        panelD.setLayout(new BorderLayout());
        img1.setIcon(new ImageIcon(ruta + "Aston.jpg"));
        img2.setIcon(new ImageIcon(ruta + "mclaren.jpg"));
        img3.setIcon(new ImageIcon(ruta + "Ferrari.jpg"));
        img4.setIcon(new ImageIcon(ruta + "Koeni.jpg"));
        img5.setIcon(new ImageIcon(ruta + "prueba.jpg"));
 
    }
 
    public void armado() {
        ventana.add(panelD);
        ventana.add(panelI, BorderLayout.WEST);
        panelI.add(img1);
        panelI.add(img2);
        panelI.add(img3);
        panelI.add(img4);
 
    }
 
    public void ecuchas() {
        Escucha_Raton esc = new Escucha_Raton();
        img1.addMouseListener(esc);
    }
 
    public void lanazar_IGU() {
        ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ventana.setLocationRelativeTo(null);
        ventana.setVisible(true);
    }
 
    class Escucha_Raton implements MouseListener {
 
        @Override
        public void mouseClicked(MouseEvent e) {
        }
 
        @Override
        public void mousePressed(MouseEvent e) {
        }
 
        @Override
        public void mouseReleased(MouseEvent e) {
        }
 
        @Override
        public void mouseEntered(MouseEvent e) {
           panelD.add(img5);
        }
 
        @Override
        public void mouseExited(MouseEvent e) {
        }
 
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Franklin
Val: 456
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Como agregar una imagen a un panel con un mouseListener?

Publicado por Franklin (179 intervenciones) el 22/02/2020 18:41:22
Hmmmm quieres mostrar una imagen al pasar el mouse encima de un Label que posee una imagen.

Para ello te recomendaría agregar un 6to Label el cual modifique su Icon cada vez que necesites. En tu caso agregas una nueva imagen al panel, sucede cuando repitas este proceso n veces, tendrías que cambiar el tamaño del Panel o agregarle Scrolls.

Yo personalmente cambiaría la imagen (icon) a una etiqueta, por lo que al pasar el mouse por cualquiera de tus 5 Labels iniciales, solo cambias el valor del 6to y no agregas uno nuevo.

Para ello necesitas que tu clase implemente MouseListener

public class Catalogo implements MouseListener{////
en tu Metodo escuchas(), colocas lo siguiente...
img1.addMouseListener((MouseListener) this);
// Repites con los demas


// Ademas necesitarás colocar todos sus metodos y buscas el MouseEntered

@Override
public void mouseClicked(MouseEvent e) {

}

@Override
public void mousePressed(MouseEvent e) {

}

@Override
public void mouseReleased(MouseEvent e) {

}

@Override
public void mouseExited(MouseEvent e) {

}
public void mouseEntered(MouseEvent evt){
//Repito asumiendo que el Label que cambiaras el imagen sea el 6
img6.setIcon(new ImageIcon(ruta + "prueba.jpg"));
}


ya con eso, en teoria lhaces lo que necesitas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar