java - 如何修复 Java Swing JFrame 的大小错误
问题描述
我正在练习 Swing 布局。我求 JFrame 的实际大小与 size Dimension 不匹配
import java.awt.*;
import javax.swing.*;
public class GridRanFruit {
public GridRanFruit() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(600, 600));
frame.setLayout(null);
JPanel primary = new JPanel();
primary.setBounds(new Rectangle(0, 0, 600, 600));
primary.setLayout(new GridLayout(4, 4));
JPanel panels[][] = new JPanel[4][4];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
JPanel panel = new JPanel();
panel.setBackground(Color.gray);
primary.add(panel);
panels[i][j] = panel;
}
}
int ranSeed = (int) (Math.random() * 16);
panels[ranSeed/4][ranSeed%4].setBackground(Color.green);
frame.getContentPane().add(primary);
frame.pack();
frame.setVisible(true);
}
}
您可以从下面的图片中找到小错误。怎么解决呢?我正在使用setPerferredSize
方法。这意味着尺寸与相同尺寸JFrame
不匹配JPanel
解决方案
尝试将设置大小的行替换为
frame.setSize(600,600);
就像其中一位评论者所说,setPreferredSize() 用于内容窗格(框架内可以放置东西的空间)而不是框架本身(窗口的边框)。
推荐阅读
- parsing - Parsec 简单解析器导致错误“约束中的非类型变量参数:Stream sm Char”
- algorithm - 分析具有未知结构和容错的表
- d3.js - D3 - 在鼠标悬停时获取 x 位置
- python - django覆盖删除级联一次
- c# - 无法将字符串列表排序为数字?
- nginx - uwsg_cache的不同配置取决于url路径
- python - 如何在 osmnx 中下载和构建图形?
- javascript - ASP 会话在 Java 1.8 但不是 1.6 中超时。造成巨大的用户影响
- c# - C#:让编译器在从 IEnumerable 读取多态对象时调用正确的方法重载
- php - 使用 file_get_contents() 获取对本地 IP URL 的请求不起作用