我在练习摇摆布局。我发现jframe的实际尺寸与尺寸不匹配
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
虽然大小一样
误差高度
误差宽度
正常尺寸
1条答案
按热度按时间z3yyvxxp1#
尝试替换要设置大小的行
setpreferredsize(),就像一位评论员所说的,是用于内容窗格(框架内可以放置东西的空间),而不是框架本身(窗口的边框)。