Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';无法获取ExtendedState JFrame的大小_Java_Swing_Jframe - Fatal编程技术网

Java Can';无法获取ExtendedState JFrame的大小

Java Can';无法获取ExtendedState JFrame的大小,java,swing,jframe,Java,Swing,Jframe,我无法得到JFrame的大小。JFrame已通过setExtendedState(maximized_两者)最大化,并且它也是可见的 import javax.swing.JFrame; public class Fenster extends JFrame { Fenster() { this.setExtendedState(MAXIMIZED_BOTH); this.setUndecorated(true); this.setA

我无法得到JFrame的大小。JFrame已通过setExtendedState(maximized_两者)最大化,并且它也是可见的

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

试试:

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

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

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

我猜对了1366x768。我已经复制了你的代码。我在Arch Linux上用JRE7-openjdk-7.u75_2.5.4-1在Gnome3对它进行了测试。“我无法获得JFrame的大小。”你为什么想要那个维度?看到同样的问题。我已经尝试过了。我也尝试过这个。getContentPane().getSize().getHeight()但它也不起作用。那么可能是因为您在框架中调用了没有组件的pack。起初我没有使用pack()。但在另一个问题中,有人写道我必须使用pack()和setVisible(true)在我能够获得大小之前。Pack只是将帧缩小到最小大小,不需要。如果用户不添加任何组件,则帧将设置为可能的最小值,即0x0或1x1True。我希望这主要是出于演示目的。即使添加了组件,我观察到的是,在不移动对s的调用的情况下etExtendedState维度(如全屏)不会出现。是的,他必须移动该包(),但如果没有包(),我会得到相同的结果。那么我应该怎么做才能获得窗口的大小。顺便问一下:在Gnome3上,应用程序没有覆盖任务栏。所以我不能使用屏幕维度(?)我很困惑-你只是想得到屏幕尺寸吗?