ventana una programar heredar generar formularios ejemplos ejemplo crear con como clases java swing jframe center jwindow

java - una - Ventanas de giro central



jframe en java ejemplo (5)

Estoy desarrollando una aplicación Java Swing. ¿Cómo puedo hacerlo para que cuando el programa en sí y cualquier otra ventana se abran, aparezcan en el centro de la pantalla?


Es fácil si estás usando Netbeans. En la ventana de propiedades de JFrame vaya a la pestaña " Código ". Hay una opción como "Generar centro". Verifique esa opción. JFrame se mostrará en el centro.


Hacerlo a mano en un entorno de múltiples pantallas proporciona algo como esto (estático, porque probablemente lo querría en una clase de utilidad):

public static Rectangle getScreenBounds(Component top){ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gd = ge.getScreenDevices(); if (top != null){ Rectangle bounds = top.getBounds(); int centerX = (int) bounds.getCenterX(); int centerY = (int) bounds.getCenterY(); for (GraphicsDevice device : gd){ GraphicsConfiguration gc = device.getDefaultConfiguration(); Rectangle r = gc.getBounds(); if (r.contains(centerX, centerY)){ return r; } } } return gd[0].getDefaultConfiguration().getBounds(); } public void centerWindowOnScreen(Window windowToCenter){ Rectangle bounds = getScreenBounds(windowToCenter); Point newPt = new Point(bounds.x + bounds.width / 2, bounds.y + bounds.height / 2); Dimension componentSize = windowToCenter.getSize(); newPt.x -= componentSize.width / 2; newPt.y -= componentSize.height / 2; windowToCenter.setLocation(newPt); }

En cuanto al botón predeterminado, es JDialog.getRootPane().setDefaultButton(btn) , pero el botón ya debe estar agregado al cuadro de diálogo, y visible.


Tendrás que hacerlo a mano, usando setLocation(x,y) .

Algo como:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation((dim.width-frameWidth)/2, (dim.height-frameHeight)/2);

Debe hacerlo (no probado).


frame.setLocationRelativeTo (null); hacer el marco abierto en cetner

Un saludo, Rehan Farooq


frame.setLocationRelativeTo( null );