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?