Centrar una ventana en Java (Swing)
A menudo me siento en la necesidad de centrar una ventana cuando trabajo en Swing. En muchos foros se muestra la manera de obtener la altura y anchura de la ventana, la posición de la ventana padre, y realizar complejos cálculos en base a éstas para obtener una ventana centrada.
Es triste pensar que la gente que ha hecho java no haya dedicado tiempo a algo tan trivial como centrar una ventana.
Y lo han hecho.
De hecho, han ido más lejos: dependiendo de cómo esté configurado tu sistema, centrará la ventana en la ventana padre, en el centro de la pantalla o no la centrará en absoluto. La gente tiende a olvidar que hay masoc…… otra gente que no usa Gnome, KDE, Windows o Mac, sino que también usan Window Maker, LXDE, …. Y otros renderers aún más extraños.
Por eso, la manera correcta de centrar un diálogo o ventana en Java es marcar
la propiedad setLocationByPlatform
:
|
|
De manera que, dependiendo del sistema y de si establecimos el padre de una ventana, la ventana se centrará donde debe.