Home Foros Foro dudas Foro de Java Duda con clases abstractas Respuesta a: Duda con clases abstractas

Respuesta a: Duda con clases abstractas

Home Foros Foro dudas Foro de Java Duda con clases abstractas Respuesta a: Duda con clases abstractas

#12397

FrankMegia
Participante

Hola Cristian: Como parece que te está costando un poco, y está claro que lo has intentado de muchas maneras, te pongo el código comentado, a ver si así lo ves más claro. Ya se que no querías el código pero tampoco es que yo sea un genio explicando 🙂

class prueba2 extends JPanel implements ActionListener {

Image imagen1;
public prueba2() {
JButton boton1 = new JButton(“Rojo”); //Declara e instancia el botón
boton1.addActionListener(this); //Añade el actionListener al botón
add(boton1); //Añade el botón a la lamina
}

//Este método sobreescrito será llamado con la llamada a repaint, y lo hace internamente, tu no tienes que pasar parámetros ni nada
public void paintComponent(Graphics g) {
super.paintComponent(g); //Llamada al método de la clase padre, para que dibuje el botón normalmente
g.drawImage(imagen1, 0, 0, null); //Dibuja la imagen con los parámetros que tu estableciste. Hasta que no se cargue la imagen, imagen1 será null, es decir, no dibujará nada.
}

//Método que se ejecutará cuando pulses el botón, es decir, sólo cargará la imagen y repintará con la imagen, cuando lo pulses.
public void actionPerformed(ActionEvent e) {
try{
imagen1 = ImageIO.read(new File(“src/libro_abierto.png”)); //Carga la imagen
repaint(); //Obliga a repintar la lamina, con lo que internamente llamará a paintComponent
}catch(IOException we){
System.out.println(“noooo”); //Mensaje de error
}
}
}

Espero que viendo el código con los comentarios te ayude.

Un saludo.