java - GridBagLayout 适用于更高的分辨率,但不适用于更低的分辨率

标签 java swing resolution layout-manager

我使用 GridBagLayout 将我的游戏菜单置于 jframe 的中心,它在我的屏幕分辨率为 1920x1080 的固定计算机上运行良好,但是当我使用完全相同的代码但在我的笔记本电脑上时,菜单永远不会显示。

这是将菜单添加到 jframe 的代码:

        frame.setLayout(new GridBagLayout());
        if(menu.checkGame() == false){
            menu.setLayout(null);
            menu.setBackground(new Color(0, 0, 0, 0));
            menu.setPreferredSize(new Dimension(1400, 1080));
            load.setBackground(true);
            frame.add(menu, new GridBagConstraints());
        }

为什么它不能在较低的分辨率下工作,我该如何解决这个问题?

最佳答案

每当 GridBagLayout 没有足够的空间容纳每个子组件的首选尺寸时,它会将每个组件设置为其最小尺寸。尝试添加 menu.setMinimumSize(menu.getPreferredSize())

关于java - GridBagLayout 适用于更高的分辨率,但不适用于更低的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16967726/

相关文章:

java - 如何从Java中的List数组中获取格式化字符串?

java - 尽管关闭了小数宽度,但 OpenJDK 11 Swing 等宽字体在 macOS Retina 上呈现问题

java - 是否可以停止某个线程的运行?

css - 仅适用于 Iphone 6 的媒体查询

javascript - 根据窗口大小动态调整div

java构建工具maven和jar文件

java - 字符串 url 编码两次,我无法获取初始字符串

java - 用于 C++ 实现的 native JNI 静态方法的 Java 运行时错误

java - 单击 JTable 单元格内的 JComboBox 时,JComboBox 在 JTable 外部消失

matlab - datetime matlab 不同时间分辨率