Java: JFrame.setLocationRelativeTo(null) nicht zentrieren das Fenster auf Ubuntu 10.04 / gnome 2.30.2 mit 1.6.0_18 OpenJDK

Beispielcode:

    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

Ist dies das OpenJDK ist Schuld? Ich erinnere mich hören, es war nicht so gut wie die Sonne, aber da wurde es der standard für Ubuntu oder was auch immer habe ich beschlossen zu gehen zusammen mit ihm. Das Programm ist wahrscheinlich gonna laufen auf windows, so dass ich glaube, ich bin gonna haben, um zu überprüfen, gibt es... keine einfache Möglichkeit, dies zu beheben, in eine Plattform-unabhängige Art und Weise, ohne zu brechen, wo es schon funktioniert?

In Sie screenshot, oben Links ist perfekt zentriert. Sie müssen nur kompensiert werden durch die Höhe und Breite des Rahmens.
Wie bereits von Evan, dieser code ruft setLocationRelativeTo() zu früh in den code. Es muss getan werden nach pack()/setSize(). Beachten Sie auch, dass in Ihrem Beispiel, und Evan, der Aufruf von setSize() ist redundant, wenn unmittelbar gefolgt von pack().

InformationsquelleAutor captain poop | 2010-08-13

Schreibe einen Kommentar