Java 将jbutton和jlabel数组添加到jpanel数组到帧中时出现问题

Java 将jbutton和jlabel数组添加到jpanel数组到帧中时出现问题,java,arrays,swing,Java,Arrays,Swing,我想给每个jpanel添加10个jlabel和10个jbutton。现在有10个JPanel我想添加到一个框架中,所以jframe应该显示100个jlabel,100个jbutton和10个JPanel。 我的问题是,帧仅显示10个jlabel和10个jbutton。我不知道哪里错了。 这是我的密码 public class MultiPanel extends JFrame { private JPanel[] panel; private JLabel[] label; private J

我想给每个jpanel添加10个jlabel和10个jbutton。现在有10个JPanel我想添加到一个框架中,所以jframe应该显示100个jlabel,100个jbutton和10个JPanel。 我的问题是,帧仅显示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类MultiPanel扩展JFrame{
私人JPanel[]小组;
专用JLabel[]标签;
私有JButton[]按钮;
公共多通道(){
面板=新JPanel[10];
标签=新的JLabel[10];
按钮=新的JButton[10];
对于(int i=0;i
公共类多通道扩展JFrame{
公共多通道(){
整数增量=0;
而(增量<10){
JPanel toAdd=新的JPanel();
对于(int i=0;i<10;i++){
JLabel l=新的JLabel(String.valueOf(i+1));
JButton b=新JButton(“b”);
l、 设置大小(50,50);
添加setLayout(新的FlowLayout(FlowLayout.CENTER));
添加(l);
添加(b);
}
添加(toAdd);
增量++;
}
setLayout(新的GridLayout(1,10));
设置大小(720560);
setVisible(真);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
公共静态void main(字符串[]args){
MultiPanel m_pnl=新的MultiPanel();
}
}
你的逻辑是错误的。。。试试这个。您有一个外部
while
循环,它将创建10个您想要的
jpanel
。内部
for
循环向每个
JPanel
添加10个
jlabel
JButtons
。然后,您只需将所有十个
JPanel
添加到主
JPanel
,主
JPanel
将被拍打在
JFrame
上。我已经编译并运行了这个程序,它运行正常


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

您的逻辑不正确。。你正在添加10个jpanel,每个面板中有一个标签和一个按钮…@nachokk:你的评论是对的,我的答案是错的。您应该回答这个问题。原始海报——您最好使用JTable来代替。@HoverCraftFullOfels提供了一个很好的建议;这将扩展到数百个,而不是数千个。@fullofeels我做了肮脏的工作并发布了正确的逻辑:phi josh,我尝试了你的代码,但它给了我一个数组索引超出范围的例外我刚刚编译了它,它运行得很好…你确定一切都和我一样吗?我在不同的类中运行了它,所以很抱歉@joshI刚刚做了另一次编辑,删除了所有数组,因为你真的不需要它们,所以超出范围的例外应该消失了
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();
}
}