Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/11/2014, 00:02
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: tener 2 imagenes en 2 jpanels distintos una de fondo y la otra en medio

Hola,

Cita:
Iniciado por dr4 Ver Mensaje
... 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.
Código:
imagenes=new Imagenes();
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
  1. @Override
  2.     public void paint(Graphics g) {
  3.         super.paint(g);
  4.         Graphics2D g2 = (Graphics2D) g;
  5.         g2.drawImage(image, 0, 0, getWidth(), getHeight(), rectangle.x, rectangle.y, rectangle.width, rectangle.height, this);
  6.         g2.drawImage(image, 100, 100, getWidth() - 100, getHeight() - 100, rectangle.x, rectangle.y, rectangle.width, rectangle.height, this);
  7.     }
En donde image es la imagen que obtuviste de algún lado y rectangle su tamaño con x, y, w, h.

Saludos,

Última edición por HackmanC; 16/11/2014 a las 00:10