如何通过循环为另一个 JFrame 中的一堆 JButton 设置文本?



我在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);
}

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

在 Java 中分配具有动态名称的变量

如何为 10 x 10 网格按钮布局中的每个 JButton 提供唯一的 ID/名称

如何重命名 JButton 的集合?

创建一个 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++;
}