tamaño redimensionar pantalla maximo los fijo cualquier contenido componentes cambiar autoajustable adaptar swing jframe resize dynamic-resizing

swing - pantalla - redimensionar los componentes de un jframe



Cómo cambiar automáticamente el tamaño de JFrame según el contenido (1)

La solución que describes parece razonable.

Alternativamente, siempre que MyPanel cambie su imagen, puede buscar su Marco principal y luego invocar el paquete () sobre él. Si no existe tal Marco, entonces no hagas nada. No es necesario crear clases adicionales, y es un acoplamiento tan flexible como el que obtendrás. Puede usar SwingUtilities.getAncestorOfClass() para hacer esto fácilmente.

He creado un JPanel personalizado que muestra imágenes (llamémoslo MyPanel ). He añadido esto al JFrame de JFrame .

Quiero que JFrame MyPanel tamaño automáticamente para que se ajuste al MyPanel cuando la imagen cambie.

Parece que necesito llamar a frame.pack() para hacer esto. La llamada a pack() desde MyPanel aumenta el acoplamiento, así que no quiero hacer eso.

Para resolver el problema, extendí JFrame (llamémoslo MyFrame ) e hicimos MyFrame observador, y MyPanel observable. Cuando la imagen MyPanel muestra cambios, notifica a los oyentes, MyFrame para esta instancia. Y luego MyFrame llama a pack() cuando recibe la notificación.

¿Hay una manera más suave de cambiar el tamaño de JFrame según su contenido?