JFrame jFrame = new JFrame("Test");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setLocationRelativeTo(null);
jFrame.setSize(600, 600);
jFrame.pack();
// jFrame.setLocationRelativeTo(null); // same results
jFrame.setVisible(true);
screenshot http://img193.imageshack.us/img193/5296/screenshotrev.png
¿Es esta culpa del OpenJDK? Recuerdo haber oído que no era tan bueno como el de Sun, pero desde que se convirtió en el estándar para Ubuntu o lo que sea, decidí aceptarlo. El programa probablemente se ejecutará en Windows, así que supongo que tendré que comprobarlo ... ¿Hay alguna manera fácil de arreglar esto de una manera independiente de la plataforma sin romperlo donde ya funciona?
En ti captura de pantalla, la esquina superior izquierda está perfectamente centrado. Solo necesita compensarlo por la altura y el ancho del marco. – jjnguy
Como señala Evan, este código llama a setLocationRelativeTo() demasiado pronto en el código. Debe hacerse ** después de ** pack()/setSize(). También tenga en cuenta que tanto en su ejemplo como en Evan, la llamada a setSize() es redundante si es seguida inmediatamente por pack(). –