如何使用循环从另一个 JFrame 为一堆 JButton 设置文本?

How to set text for a bunch of JButton from another JFrame with loop?

我在 JFrame 上的网格中有 36 个 JButton 组件,当我从菜单打开框架时,希望将它们的文本设置为 1、2、3 ... 36在另一个框架上。 (稍后我必须随机化他们的号码。)

按钮的名称相似:

jButton1
jButton2
jButton3
...
jButton35
jButton36

要简单地将第一个按钮文本更改为 1 是:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    grid gr = new grid();
    grid.jButton1.setText("1");
    gr.setVisible(true);
}

有这样的方法吗?:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    grid gr = new grid();
    String number;

    for (int i=1; i<37; i++) {
        number=Integer.toString(i);
        grid.jButton<i>.setText(number);
    }
    gr.setVisible(true);
}

我找到了这些链接,但它们不是很有用,因为我的按钮不在任何数组或列表中,它们从同一帧更改文本,或者没有其他方法吗?:

Assigning variables with dynamic names in Java

How to give each JButton in a 10 x 10 grid button layout a unique ID/name

How to rename set of JButtons?

创建一个 JButton 类型的 ArrayList,将 JButton 添加到其中,然后使用 for-each 循环进行迭代并赋值。此代码对我有用。

    JFrame frame = new JFrame();
    frame.setSize(400, 500);
    frame.setVisible(true);
    frame.setLayout(null);

    ArrayList<JButton> buttons = new ArrayList<JButton>();
    JButton b1= new JButton();
    JButton b2= new JButton();
    JButton b3= new JButton();
    JButton b4= new JButton();
    JButton b5= new JButton();

    buttons.add(b1);
    buttons.add(b2);
    buttons.add(b3);
    buttons.add(b4);
    buttons.add(b5);
    int count = 1;
    for(JButton b: buttons)
    {
        b.setText(String.valueOf(count));
        b.setBounds(0,count*50,50,30);
        frame.add(b);
        count++;
    }