Java - Centrar un JPanel

 
Vista:

Centrar un JPanel

Publicado por Brian Palma (22 intervenciones) el 18/03/2009 15:43:12
Salu2

Tengo un pregunta con respecto a un JPanel, resulta que tengo una aplicación basada en ventanas, la cual tiene un JPanel dentro, lo que deseo es centrar ese JPanel independientemente de la resolución de la pantalla y estoy utilizando el siguiente código:
Dimension pantallaTamano = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize((pantallaTamano.width), (pantallaTamano.height));
Dimension tamanoPanel = jPanel1.getSize();
jPanel1.setBounds((pantallaTamano.width - tamanoPanel.width) / 2, ((pantallaTamano.height - tamanoPanel.height) / 2),(int) tamanoPanel.getWidth(), (int) tamanoPanel.getHeight());

Según yo el código está bien, utilizo el punto medio para centrar, se que sirve porque puedo centrar JInternalFrame y JDialog sin ningún problema con este mismo código, he cambiado el setBounds por el setLocate y tampoco fuciona.

Ahora lo que pasa es que aparentemente ese código no hace nada, porque puedo sustituir (int) tamanoVentana.getWidth() por 8000 y no pasa absolutamente nada. Ahora estoy utilizando netbeans 6.1 y estoy casi seguro que se debe a algún código que este crea cuando uno crea el JFrame y que no se puede modificar, el problema es que no sé cómo arreglarlo, pues cuando cambio de resolución el JPanel queda mal centrado.
El JFrame es donde me logueo en el sistema por lo que siempre esta full screen y el JPanel debe estar en el centro ya que este no abarca toda la pantalla sino que solamente contiene los campos donde van el login y el password, y los botones de ingresar y cancelar

Gracias y Salu2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Centrar un JPanel

Publicado por octavio (74 intervenciones) el 07/04/2009 09:39:12
Te respondo aqui de nuevo por si las dudas:

Creo que es mas facil de lo que pensabas, estaba buscando lo mismo que tu y con el codigo que diste se me ocurrio esta idea, espero que te sirva

//Tomo el tamaño de la pantalla
Dimension pantallaTamano = Toolkit.getDefaultToolkit().getScreenSize();
//Al ancho de la pantalla lo divido en 2 y le resto la mitad del ancho de mi ventana, con eso queda centrada en el eje X, para el eje Y es lo mismo pero con el alto:
this.setLocation((pantallaTamano.width/2)-(this.getWidth()/2), (pantallaTamano.height/2)-(this.getHeight()/2));

Despues me cuentas, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar