gpt4 book ai didi

java - 为什么 setPreferredSize 不改变按钮的大小?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:11 25 4
gpt4 key购买 nike

代码如下:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class TestGrid {

public static void main(String[] args) {
JFrame frame = new JFrame("Colored Trails");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));

JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 9));
panel.setMaximumSize(new Dimension(9*30-20,4*30));

JButton btn;
for (int i=1; i<=4; i++) {
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}

btn = new JButton();
btn.setPreferredSize(new Dimension(30, 10));
panel.add(btn);

for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}

}
mainPanel.add(panel);
frame.add(mainPanel);

frame.setSize(450,950);
frame.setVisible(true);
}
}

我想有一个 4 行 9 列的按钮表。中间的列应该比其他列窄。我试过 Dimension(30, 10)Dimension(30, 10) 都对中间列的宽度没有影响。为什么?

最佳答案

布局管理员可以随意忽略首选尺寸。具体来说,GridLayout 将始终使网格中的每个单元格大小完全相同(因此它是一个非常无用的布局管理器)。

您必须使用不同的布局管理器,例如嵌套的 BoxLayoutGroupLayout

关于java - 为什么 setPreferredSize 不改变按钮的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2546079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com