Pregunta: | 60527 - CENTRAR UN JPANEL |
Autor: | Brian Palma C |
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 |
Respuesta: | Henry Sanchez Cordova |
Creo que el problema viene por el tipo de esquema ( Layout o algo asi no me acuerdo en este momento la palabrita :D ) que estas usando prueba primero antes de usar el setBounds() esto:
En TU Frame : this.setLayout( Null ); luego de eso colocas tu codigo normal y ya debe funca sin problemas. Saludos. |