2012-08-17 218 views
9

¿Cómo debo obtener el tamaño real de JPanel en JFrame?¿Cómo obtener el tamaño real de JPanel?

+6

"Por poner realmente [' getSize() '] (http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getSize%28%29)." Es posible que se llame al método antes de que se realice. Para obtener consejos más específicos, publique un [SSCCE] (http://sscce.org/). –

+1

Como dice @Andrew. Pero no puedes hacerlo hasta que no se haya renderizado. – km1

Respuesta

16

El tamaño será 0,0 hasta que aparece debido a que los componentes y el diseño no se calculan de antemano.

+0

¿Hay alguna devolución de llamada para inicializar los componentes secundarios de jPanel después de obtener su ancho y alto reales? –

8

thePanel.getSize();

Esto devuelve la Dimensión.

veces añado un ComponentListener para mostrar la dimensión cuando se cambia el tamaño del panel.

EDIT: Si desea que el tamaño del panel de contenido del JFrame continuación

theFrame.getContentPane().getSize(); 
+1

No da java.awt.Dimension a tamaño real [width = 0, altura = 0] he usado antes de que – Yoda

+0

kilometros @RobertKilar la mitad respondió que usted cuestione, añadir un ComponentLsterner al panel que le interesa y supervisar el evento componentResized – MadProgrammer

+1

@RobertKilar probablemente estés obteniendo el tamaño antes de que se represente. Pruebe el controlador de eventos de cambio de tamaño del oyente componente. – km1

Cuestiones relacionadas