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中披露之前,我不准备发表评论。