1

How can I set the text of a JLabel with a loop? For example:

String cur[]= {"A","B","C"};
JLabel lblA,lblB,lblC;

for(i=0;i < cur.length;i++){
  lbl+cur[i].setText("something");
}

what should go in the "lbl+cur[i]" part so it sets the text of the JLabels?

Thanks

mKorbel
  • 109,525
  • 20
  • 134
  • 319
usw
  • 37
  • 1
  • 4
  • 7

2 Answers2

3

You can't dynamically create variable names like that.

If you want to set the value of a label in a loop then you need to create an array of JLabels the same way you create an array of Strings.

JLabel[] labels = new JLabel[cur.length];

for (int i = 0 i < cur.length; i++)
{
    labels[i] = new JLabel( cur[i] );
}
camickr
  • 321,443
  • 19
  • 166
  • 288
1

You can make an array of JLabels instead:

JLabel[] labels = {new JLabel(), new JLabel(), new JLabel()};
for ( JLabel label : labels ) {
   label.setText("something");
   panel.add(label);
}
Mark Peters
  • 80,126
  • 17
  • 159
  • 190