gpt4 book ai didi

java - 如何使用嵌套在 ScrollPane 内的 MigLayout 组织两行大小相同的按钮

转载 作者:行者123 更新时间:2023-12-01 10:19:09 25 4
gpt4 key购买 nike

我正在使用 JFrame 并尝试设计一个容器,该容器可以容纳分布在 2 行(和多列)上的按钮数组。

我需要安装尽可能多的按钮。虽然文本宽度不同,但按钮本身的大小必须相同(如果文本大于宽度,则文本必须包裹在按钮内)。

我正在使用 JScrollPane,并使用 MigLayout 布局按钮。

这是我到目前为止的代码。我是 MigLayout 的新手,有太多选项让我很快就感到困惑。我需要帮助设置行/列约束,以便我只有两行(并且列数将等于数组大小的一半),并设置组件约束,以便每个按钮具有相同的宽度、高度和换行文本。

我在这里手动添加按钮,因为我还没有使用数组来实现它。

更新:我能够弄清楚如何使文本换行,就像我想要使用 HTML 标签一样。

    JPanel panel = new JPanel(new MigLayout("", "[300px]", "[150px]"));
panel.setBounds(35, 377, 1294, 307);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 377, 1319, 341);
scrollPane.setViewportView(panel);
contentPane.add(scrollPane);

JButton btnButton = new JButton("The dominoes will help you read what's written behind the board.");
panel.add(btnButton, "cell 0 0,grow");

JButton btnButton_1 = new JButton("What about the wooden box?");
panel.add(btnButton_1, "cell 1 0,grow");

JButton btnButton_2 = new JButton("Did you look at the stool?");
panel.add(btnButton_2, "cell 2 0,grow");

JButton btnButton_3 = new JButton("The dominoes will help you read what's written behind the board.");
panel.add(btnButton_3, "cell 3 0,grow");

JButton btnButton_4 = new JButton("The room is a clock.");
panel.add(btnButton_4, "cell 4 0,grow");

JButton btnButton_5 = new JButton("If 12:00 is the red dot, where is 6:05?");
panel.add(btnButton_5, "cell 5 0,grow");

JButton btnButton_6 = new JButton("Sunglasses are black.");
panel.add(btnButton_6, "cell 0 1,grow");

JButton btnButton_7 = new JButton("Are you sure you looked everywhere?");
panel.add(btnButton_7, "cell 1 1,grow");

JButton btnButton_8 = new JButton("The darts are color coded.");
panel.add(btnButton_8, "cell 2 1,grow");

JButton btnButton_9 = new JButton("Where else have you seen this pattern?");
panel.add(btnButton_9, "cell 3 1,grow");

JButton btnButton_10 = new JButton("Did you look are the wigs?");
panel.add(btnButton_10, "cell 4 1,grow");

JButton btnButton_11 = new JButton("Maybe they're page numbers?");
panel.add(btnButton_11, "cell 5 1,grow");

最佳答案

所以,你知道你有 2 行 N 列。我想您知道需要添加的按钮总数,您应该除以行数以获得按行的按钮数。

之后,直到达到该数字,您可以通过以下方式添加按钮:

while (anyCounter < totalButtonsByRow) {
panel.add(btnButton_X, "grow");
anyCounter++;
}

请考虑到,当您达到一行中的按钮数量时,请按以下方式添加最后一个按钮:

panel.add(btnButton_X, "grow, wrap");

最后,用其余按钮填充第二行。

panel.add(btnButton_X, "grow");

关于java - 如何使用嵌套在 ScrollPane 内的 MigLayout 组织两行大小相同的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35732462/

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