java - tamaño - ¿Cómo configurar JFrame para que aparezca centrado, independientemente de la resolución del monitor?
maximizar jframe java (11)
Al trabajar con Java, me resulta difícil posicionar mi ventana principal en el centro de la pantalla cuando comienzo la aplicación.
¿Hay alguna manera de que pueda hacer eso? No tiene que estar centrado verticalmente, la alineación horizontal es el objetivo más importante para mí. Pero la alineación vertical también es bienvenida.
Estoy usando NetBeans IDE 7.2.1 como desarrollador ambiental y allí tienes una opción para configurar las propiedades de JForm.
en las Propiedades de JForm vaya a la pestaña ''Código'' y configure ''Generar Centro''. primero deberá establecer la Política de tamaño de formulario para ''Generar código de cambio de tamaño''.
Estoy usando NetBeans IDE 7.3 y así es como voy a centralizar mi JFrame. Asegúrese de hacer clic en JFrame Panel y vaya a la barra de propiedades de JFrame, haga clic en la barra de Código y seleccione la casilla de verificación Generar Centro.
Obtendrá el tamaño establecido, después de agregar esto:
frame.setLocationRelativeTo(null);
Puede llamar a setLocationRelativeTo(null) para centrar la ventana. Asegúrese de poner esto antes de JFrame.setVisible(true)
Puede usar este método, que permite que JFrame esté centrado y en pantalla completa al mismo tiempo.
yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
Si setPreferredSize(new Dimension(X, Y));
explícitamente setPreferredSize(new Dimension(X, Y));
entonces es mejor usar:
setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);
Si usa NetBeans, simplemente haga clic en el marco en la vista de diseño, luego en la pestaña del código en sus propiedades. Luego, marca ''Generar Centro''. Eso hará el trabajo.
Siempre lo hice de esta manera:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
donde this
es el JFrame involucrado.
Tan simple como esto ...
setSize(220, 400);
setLocationRelativeTo(null);
o si está usando un marco, configure el marco para
frame.setSize(220, 400);
frame.setLocationRelativeTo(null);
Para aclarar, de los documentos :
Si el componente es nulo, o la configuración de gráficos asociada con este componente es nula, la ventana se coloca en el centro de la pantalla.
Use setLocationRelativeTo(null)
Este método tiene un efecto especial cuando lo pasa null
. De acuerdo con el Javadoc:
Si el componente es nulo, o la configuración de gráficos asociada con este componente es nula, la ventana se coloca en el centro de la pantalla.
Esto se debe hacer después de configurar el tamaño o el pack()
llamada pack()
, pero antes de configurarlo, de esta manera:
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);