Hola,
Cita:
Iniciado por dr4 ... lo que intento es crear una imagen de fondo que crezca y se encoja con la ventana, conseguí hacerlo sin problemas usando un borderlayout y asignandole center pero es problema es que luego quiero agregarle otra imagen que esté en el centro pero no ocupe toda la pantalla(por encima del fondo de pantalla) y que esa imagen también crezca y se encoja con la ventana, he usado un listener que me avise de la anchura y la altura de la ventana en todo momento y he tratado de asignarle la altura y la anchura del jframe al jpanel,pero me da error, ...
Posiblemente, estás ocultando una variable,
Código:
Imagenes imagenes=new Imagenes();
En ese caso estás ocultando la variable imágenes al redefinirla, para eliminar el error solamente no la definas de nuevo.
Y de allí puedes continuar.
Adicionalmente, aunque es posible hacer lo que estás pensando, usando un Layout null, va a ser muy complicado. Java tiene mecanismos mas simples para hacer lo que deseas.
Puedes usar un OverlayLayout (básicamente un null Layout), o un LayeredPane, o posiblemente puedes usan un GlassPane, aunque no esté en el fondo realmente la imagen podrías usarlo si no va a poner mas componentes. En el peor y mas complicado de los casos puedes hacer un LayoutManager.
El problema está en que todos esos métodos van a ser mucho mas complicados que simplemente hacer un @Override del método paint() del JFrame y con el método drawImage() del parámetro Graphics que recibes pintar las dos imágenes, una sobre otra, cambiándole el tamaño la segunda vez.
Por ejemplo:
Código Java:
Ver original@Override
super.paint(g);
g2.drawImage(image, 0, 0, getWidth(), getHeight(), rectangle.x, rectangle.y, rectangle.width, rectangle.height, this);
g2.drawImage(image, 100, 100, getWidth() - 100, getHeight() - 100, rectangle.x, rectangle.y, rectangle.width, rectangle.height, this);
}
En donde image es la imagen que obtuviste de algún lado y rectangle su tamaño con x, y, w, h.
Saludos,