无法获得ExtendedState JFrame的大小

时间:2015-04-12 21:07:34

标签: java swing jframe

我无法获得JFrame的大小。 JFrame已使用setExtendedState(MAXIMIZED_BOTH)最大化,并且也可见。

import javax.swing.JFrame;

public class Fenster extends JFrame {

    Fenster() {

        this.setExtendedState(MAXIMIZED_BOTH);
        this.setUndecorated(true);
        this.setAlwaysOnTop(true);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.pack();
        this.setVisible(true);
        System.out.println(this.getWidth() + " x " + this.getHeight());

    }

}

我只在控制台中获得“0 x 0”或“1 x 1”。我也不知道为什么输出是随机的。

2 个答案:

答案 0 :(得分:2)

在setExtendedState之后调用JFrame.pack(),它可以调整JFrame的大小(其他人注释不会遇到此问题,因此它可能是基于环境的)。我可以重现你在Mac上观察到的东西 - 如果删除了pack()或者在pack()之后调用了setExtendedState,那么这种行为似乎与我认为你想要的更加一致。

答案 1 :(得分:0)

尝试:

int w = getSize().getWidth();
int h = getSize().getHeight();

我不知道为什么你的代码不起作用