gpt4 book ai didi

java - 将 jbutton 和 jlabel 数组添加到 jpanel 数组到框架中时出现问题

转载 作者:行者123 更新时间:2023-12-01 13:41:16 24 4
gpt4 key购买 nike

我想向每个 jpanel 添加 10 个 jlabel 和 10 个 jbutton。现在我想将 10 个 jpanels 添加到框架中,因此 jframe 应该显示 100 个 jlabel、100 个 jbutton 和 10 个 jpanels。我的问题是框架只显示 10 个 jlabel 和 10 个 jbutton。我不知道哪里错了。这是我的代码

public class MultiPanel extends JFrame {

private JPanel[] panel;
private JLabel[] label;
private JButton[] button;

public MultiPanel() {
panel = new JPanel[10];
label = new JLabel[10];
button = new JButton[10];

for (int i = 0; i < label.length; i++) {
label[i] = new JLabel(String.valueOf(i + 1));
button[i] = new JButton("B");
label[i].setSize(50, 50);
panel[i] = new JPanel();
panel[i].setLayout(new FlowLayout(FlowLayout.CENTER));
panel[i].add(label[i]);
panel[i].add(button[i]);
add(panel[i]);
}
setLayout(new GridLayout(1, 10));
setSize(720, 560);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
MultiPanel m_pnl = new MultiPanel();
}
}

最佳答案

public class MultiPanel extends JFrame {

public MultiPanel() {
int increment = 0;
while(increment < 10){
JPanel toAdd = new JPanel();
for (int i = 0; i < 10; i++) {
JLabel l = new JLabel(String.valueOf(i + 1));
JButton b = new JButton("B");
l.setSize(50, 50);
toAdd.setLayout(new FlowLayout(FlowLayout.CENTER));
toAdd.add(l);
toAdd.add(b);
}
add(toAdd);
increment++;
}
setLayout(new GridLayout(1, 10));
setSize(720, 560);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
MultiPanel m_pnl = new MultiPanel();
}
}

你的逻辑有问题...试试这个。您有一个外部 while 循环,它将根据您的需要创建 10 个 JPanel。内部 for 循环将 10 个 JLabelsJButtons 添加到每个 JPanel,如您所愿。然后,您只需将所有十个 JPanels 添加到主 JPanel 中,该主 JPanel 位于 JFrame 上。我已经编译并运行了它并且它有效

之前您只向每个面板添加一个标签和按钮。您有 10 个面板,每个面板有 1 个按钮和一个标签

关于java - 将 jbutton 和 jlabel 数组添加到 jpanel 数组到框架中时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754098/

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