PROGRAMACIÓN ORIENTADA A OBJETOS Sabino Miranda Jiménez [email protected] UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO GUI Imagen de Fondo con NetBeans Agregar un Fondo a un JPanel Agregar una imagen de fondo a un panel ya construido en NetBeans 6.8 El panel debe tener la propiedad opaque falsa o deseleccionada Crear la clase PFondo .java en el paquete del proyecto en este caso el paquete es ventanafondo La clase PFondo acepta como argumento el nombre del archivo que se desea usar como fondo. Por ejemplo PFondo fondo = new PFondo("f1.jpg"); La imagen debe colocar se al nivel de carpetas del proyecto creado Clase PFondo.java (1) package ventanafondo; import javax.swing.*; import java.awt.*; public class PFondo extends JPanel { private String sFile; private ImageIcon im; public PFondo(String file) { sFile=file; try{ im = new ImageIcon(sFile); }catch (Exception e) { System.out.println("Error en la creación del fondo"); Clase PFondo.java (2) setVisible(true); setOpaque(false); } // Sobre escritura del mètodo paint public void paint(Graphics g) { g.drawImage(im.getImage(),0,0, getSize().height, getSize().width,null ); super.paint(g); } } En NetBeans (1) Para vincular el fondo de la imagen con el panel creado dentro de NetBeans: En la clase XXXXview.java, crear un objeto de instancia de tipo PFondo (modo de código fuente) PFondo fondo; En NetBeans (2) Asociar la imagen de fondo al panel : En la ventana del inspector (modo de diseño) 1. a) Clic derecho para obtener el menú emergente i. Clic en “Personalizar el código” ii. Agregar después de la creación del panel que se diseñó el siguiente código (ver siguiente ventana) iii. A cada línea seleccionar la opción post-create fondo= PFondo("f1.jpg"); //crea el fondo mainPanel=fondo; construyó // lo asocia al panel que se En NetBeans (3) En NetBeans Si se desea asociar otro(s) fondo(s) a otro(s) panel(es) se usa el mismo objeto fondo 1. Hacer los pasos de las diapositivas para cada panel En NetBeans (2) y En NetBeans (3) En NetBeans: Para cambiar de paneles Ocultar y aparecer los paneles adecuados mainPanel.setVisible(false); panMensajes.setVisible(true); Usar siguiente método para establecer el panel que queremos visualizar setComponent(panMensajes); Ejemplo de salida