Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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中JFrame的最大化_Java_Windows_Swing_Jframe_Fullscreen - Fatal编程技术网

Java中JFrame的最大化

Java中JFrame的最大化,java,windows,swing,jframe,fullscreen,Java,Windows,Swing,Jframe,Fullscreen,有几个问题与此相关,例如和,都说最大化JFrame的方法是使用以下代码: frame.setExtendedState(JFrame.MAXIMIZED_BOTH); //Some answers have these lines frame.setVisible(true); //reversed 但是,对于我来说,不确定这是否是windows 10 bug/java 8 bug,当我使用此代码时,结果是这样的(无论上面两行代码的方向是什么):

有几个问题与此相关,例如和,都说最大化
JFrame
的方法是使用以下代码:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); //Some answers have these lines
frame.setVisible(true);                        //reversed
但是,对于我来说,不确定这是否是windows 10 bug/java 8 bug,当我使用此代码时,结果是这样的(无论上面两行代码的方向是什么):

正如您在图像中看到的,窗口的大小是正确的,但是,它稍微覆盖底部,并且稍微偏离左侧。有没有办法解决这个问题,或者通过用代码点击
JFrame
上的Maximize按钮来最大化程序

编辑
下面是一个MCVE,它演示了问题:

import java.awt.GridLayout;
import javax.swing.JFrame;

public class CDBurner extends JFrame {
    private static final long serialVersionUID = -6027473114929970648L;

    private CDBurner() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridLayout(1, 1));
        setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
        setVisible(true);
        setLocationRelativeTo(null);
        requestFocus();
    }

    public static void main(String[] args) {
        new CDBurner();
    }
}
线路

setLocationRelativeTo(null);
设置帧的位置。如果之后发生

setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
它会在帧最大化后更改帧的位置,从而导致观察到的间隙。您应该删除该行,因为最大化帧会设置其位置(尽管您可以在设置扩展状态之前放置该行,在这种情况下它不会执行任何操作)。

setLocationRelativeTo(null);
设置帧的位置。如果之后发生

setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);

它会在帧最大化后更改帧的位置,从而导致观察到的间隙。您应该删除该行,因为最大化帧会设置其位置(尽管您可以在设置扩展状态之前放置该行,在这种情况下,它不会执行任何操作)。

为了更快地获得更好的帮助,请发布或。@AndrewThompson很抱歉没有包含一个。编辑question@AndrewThompson您知道解决此问题的方法吗?为了更快地获得更好的帮助,请发布一个or。@AndrewThompson很抱歉没有包含一个。编辑question@AndrewThompson你知道解决这个问题的方法吗?非常感谢。真不错!我有我的怀疑,但在MCVE中披露之前不准备发表评论。非常感谢。真不错!我有我的怀疑,但在MCVE中披露之前,我不准备发表评论。