Gridlayout 有自己的边距
Gridlayout makes it's own margin
我一直在用 grid gui 制作游戏,我制作了 MyPanel,它扩展了 JPanel 以显示 bg 图像,并拥有自己的按钮。问题是,当我制作大于 12x12 的网格布局时,它会生成自己的 magin:
左边的图片是 <=13 的情况,按钮非常适合,当右边的图片中,>13 的情况下有 小边距,我无法摆脱 .代码:
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
MyPanel panel = new MyPanel();
panel.setBounds(10, 10, 360, 360);
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(size,size));
buttons = new Button[size][];
for(int i=0;i<size;i++)
{
buttons[i] = new Button[size];
for(int j=0;j<size;j++)
{
buttons[i][j] = new Button();
panel.add(buttons[i][j]);
}
}
}
不要使用空布局!
使用布局管理器的要点是布局管理器将决定面板的大小。
然后您只需在框架上使用 pack()
,所有组件将以其首选大小显示。
另外,不要使用 Button
,那是一个 AWT 组件。 Swing 组件以 "J"
开头,因此您应该使用 JButton
.
我一直在用 grid gui 制作游戏,我制作了 MyPanel,它扩展了 JPanel 以显示 bg 图像,并拥有自己的按钮。问题是,当我制作大于 12x12 的网格布局时,它会生成自己的 magin:
左边的图片是 <=13 的情况,按钮非常适合,当右边的图片中,>13 的情况下有 小边距,我无法摆脱 .代码:
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
MyPanel panel = new MyPanel();
panel.setBounds(10, 10, 360, 360);
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(size,size));
buttons = new Button[size][];
for(int i=0;i<size;i++)
{
buttons[i] = new Button[size];
for(int j=0;j<size;j++)
{
buttons[i][j] = new Button();
panel.add(buttons[i][j]);
}
}
}
不要使用空布局!
使用布局管理器的要点是布局管理器将决定面板的大小。
然后您只需在框架上使用 pack()
,所有组件将以其首选大小显示。
另外,不要使用 Button
,那是一个 AWT 组件。 Swing 组件以 "J"
开头,因此您应该使用 JButton
.