java - 无法获取 ExtendedState JFrame 的大小

标签 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”。而且我也不知道为什么输出是随机的。

最佳答案

JFrame.pack() 在 setExtendedState 之后调用,这可能会调整 JFrame 的大小(其他人评论说不会遇到此问题,因此它可能是基于环境的)。我可以重现您在 Mac 上观察到的情况 - 如果删除 pack() 或在 pack() 之后调用 setExtendedState,则行为似乎更符合我认为您想要的效果。

关于java - 无法获取 ExtendedState JFrame 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29594667/

相关文章:

java - Android studio 配置路径无效

java - 如果 Swing View 是由 Controller 中的新线程设置的,那么它是否需要同步方法

java - Java中的JPanel与JFrame

java - 为什么我的组件在添加到面板后会消失?

java - 此实现不支持方法remove(Object o) 在DataBindingLazyMetaPropertyMap中

java - org.springframework.web.HttpRequestMethodNotSupportedException : Request method 'GET' not supported

java - 使用 ArrayList<JPanel> 构建 GUI

java - 双击图标时关闭 JFrame

java - 用 Java 从文件中完全读取对象流的最佳方法是什么?

java - 如何对齐 GroupLayout 中的内容?