java - 在 Java 中最大化 JFrame

标签 java windows swing jframe fullscreen

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

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); //Some answers have these lines
frame.setVisible(true);                        //reversed

但是,对我来说,不确定这是否是 windows 10 bug/java 8 bug,当我使用此代码时,结果是这样的(无论上面两行代码的方式如何):

Offset <code>JFrame</code>

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

编辑
这是演示该问题的 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);

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

关于java - 在 Java 中最大化 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40436467/

相关文章:

java - 根据角色禁用springfox 2.9中的“尝试”按钮

java - Spring - 将依赖项注入(inject) ServletContextListener

c# - 单击时部分选择 DataGridView 单元格的文本

Windows 进程关联

在指定文件夹中找不到 Java 安装错误 - Glassfish 配置

java - 使用方面作为从应用程序逻辑中删除防御性检查的方法是个好主意吗?

windows - 确认 HLS 服务器仅适用于 Windows PC

java - 使用 JTree 进行 Swing Action

java - 如何为 JTable 设置不同的外观?

java - JFreeChart 从另一个 JDialog 接收方程产生 "AWT-EventQueue-0"java.lang.NullPointerException