style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

JPanel con Imagen de Fondo auto-ajustado a la ventana

Bueno yo les tengo un modo de añadir imagen de fondo a un JPanel y si dan al JPanel la propiedad de Tamaño horizontal redefinible True y Tamaño vertical redefinible True, Verán como se adpata la imagen al JFrame que contiene al JPanel.

1.- (opcional) Dentro del JPanel añadido al JFrame ( por que no también JInternalFrame) dale click derecho y ve a "Personalizar Código".
2.- Código:

try {
     BgBorder borde = new BgBorder(ImageIO.read("/recursos/miImagenFondo.png")) );            
      jPanel1.setBorder(borde);            
} catch (IOException e) {
      System.out.println(e.getMessage());
}

.......Y la clase mágica que hace el resto por nosotros....

public class BgBorder implements Border {

    private BufferedImage mImagen = null;

    public BgBorder(BufferedImage pImagen) {
        mImagen = pImagen;      
    }
    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
        if (mImagen != null) {
            g.drawImage(mImagen, 0, 0, width, height, null);
        }
    }
    public Insets getBorderInsets(Component c) {
        return new Insets(0, 0, 0, 0);
    }
    public boolean isBorderOpaque() {
        return true;
    }
}

No recuerdo de donde lo leí por la web pero me ha servido mucho para mejorar mis interfaces.

Un Saludo!

Para el amigo que pidió la muestra, ajajaja en archivo adjuntos dejé las imágenes del producto final.

AdjuntoTamaño
dialogModal.jpg12.31 KB
JInternalFrame.jpg73.06 KB

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

excelete, me

excelete, me agrado..

http://javahelp.redsaltillo.net

Esta super. Yo he intentado

Esta super. Yo he intentado dibujar la imagen el algun panel, pero a veces tenía dificultades poniendo componentes encima. Lo que sugieres dibujando en el borde esta muy padre.

Podrías poner un screenshot de como se ve?

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">