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

标签 java arrays swing

我想向每个 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/

相关文章:

java - 部署 Spring-React-SQL Web 应用程序

c - 汇编维吉尼亚密码程序

c++ - 在 C++ 中拆分数组

JFrame 图像中的 Java Applet 未显示

java - 第一次绘制时图形上下文未对齐

java - String#replaceAll 与 StringUtils#replace()

java - 抽屉导航 Activity : passing values between fragment

java - 我可以在 Java Swing 应用程序中使用 Google Visualization API 吗?

java - 是否可以在少于 O(n log n) 的时间内比较两个二叉树?

PHP 数组按父级排序