我在JButton
的网格中有36个JFrame
个组件,并且当我从打开的菜单中打开框架时,希望将它们的文本设置为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
答案 0 :(得分:0)
创建一个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++;
}