En mi opinión, una GUI en el medio de la pantalla se ve tan ... "splash-screen'ish". ¡Sigo esperando que desaparezcan y que aparezca la GUI real !
Desde Java 1.5 hemos tenido acceso a Window.setLocationByPlatform(boolean)
. cual..
Establece si esta ventana debe aparecer en la ubicación predeterminada para el sistema de ventanas nativo o en la ubicación actual (devuelta por getLocation) la próxima vez que la ventana se haga visible. Este comportamiento se asemeja a una ventana nativa que se muestra sin establecer su ubicación mediante programación. La mayoría de los sistemas de ventanas conectan en cascada las ventanas si sus ubicaciones no están establecidas explícitamente. La ubicación real se determina una vez que la ventana se muestra en la pantalla.
Eche un vistazo al efecto de este ejemplo que coloca 3 GUI en las posiciones predeterminadas elegidas por el sistema operativo: en Windows 7, Linux con Gnome y Mac OS X.
(3 lotes de) 3 GUI perfectamente apiladas. Esto representa 'la ruta de menor sorpresa' para el usuario final, ya que es cómo el sistema operativo podría colocar 3 instancias del editor de texto plano predeterminado (o cualquier otra cosa, para el caso). Mi agradecimiento a trashgod para Linux y Mac. imágenes
Aquí está el código simple utilizado:
import javax.swing.*;
class WhereToPutTheGui {
public static void initGui() {
for (int ii=1; ii<4; ii++) {
JFrame f = new JFrame("Frame " + ii);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
String s =
"os.name: " + System.getProperty("os.name") +
"\nos.version: " + System.getProperty("os.version");
f.add(new JTextArea(s,3,28)); // suggest a size
f.pack();
// Let the OS handle the positioning!
f.setLocationByPlatform(true);
f.setVisible(true);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {}
initGui();
}
});
}
}