实际JFrame大小与声明的大小不匹配

时间:2017-03-29 12:39:36

标签: java swing jframe

我在MacOS上使用Java。实际屏幕分辨率为2560x1600。但尺寸为1200x900或更大的JFrame不适合屏幕。

JFrame frame = new JFrame();
frame.setBounds(0,0,1200,900);
frame.setLayout(null);
frame.setVisible(true);

此外:

JFrame frame = new JFrame();
frame.setBounds(0,0,3000,3000);
frame.setLayout(null);
frame.setVisible(true);
System.out.println(frame.getWidth() + "x" + frame.getHeight());

输出1280x773。为什么会发生这种情况以及如何处理它?<​​/ p> 编辑:有x2比例。可能是因为视网膜和操作系统配置。寻找改变这种规模的方法。

2 个答案:

答案 0 :(得分:0)

    JFrame frame = new JFrame();
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setLocationRelativeTo(null);
    frame.setLayout(null);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //============ or   set Location to (0, 0) for this approach

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    int width = (int) screenSize.getWidth();
    int height = (int) screenSize.getHeight();

    frame.setSize(width, height);

答案 1 :(得分:-1)

尝试将frame.pack()添加到您的代码中,这是您应该键入的方式

    JFrame frame = new JFrame();
    frame.setBounds(0,0,3000,3000);
    frame.setLayout(null);
    frame.setVisible(true);

frame.pack();         System.out.println(frame.getWidth()+&#34; x&#34; + frame.getHeight());