使用set location relative方法将JFrame设置为居中,仍然显示在屏幕的左上方

时间:2016-12-07 21:30:07

标签: java swing jframe

以下是代码:

public static void main(String args[]) {                
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            try { 
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                new megui().setVisible(true);
                new megui().setLocationRelativeTo(null);
//this method should set the frame to the center of the screen but it doesn't   
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

1 个答案:

答案 0 :(得分:4)

new megui().setVisible(true);
new megui().setLocationRelativeTo(null);

设置位置无效,因为您正在创建两个帧(并且​​只有第一帧实际可见)。

代码应为:

MeGUI frame = new MeGUI();
frame.setLocationRelativeTo( null );
frame.setVisible(true);

请注意,我更改了您的类名,因为类应该对类名中的每个单词使用大写字母,而首字母缩略词也应该是大写字母。

但你甚至应该使用一个更具描述性的类名,因为“MeGUI”没有描述该类的功能。