如何增加使用for循环创建jlabels的变量名?

时间:2015-12-10 07:11:04

标签: java loops netbeans jlabel increment

java代码:

for (int i = 0; i < 10;++i) {
   if (i == 9){
     lbl_ichar.setText(String.valueOf(word.charAt(i)));
   }
}

此代码显示错误消息(编译时错误:找不到符号  符号:变量类lbl_ichar)在单词lbl_ichar下。但我已经创建了变量名称lbl_0charlbl_1charlbl_2char ......的jlabel ...... {{1 }}

我想通过名称lbl_9char来调用,而不是使用lbl_ichar。这可能在java中吗?如果是这样,如何编码呢?​​

3 个答案:

答案 0 :(得分:2)

看起来您正在尝试在运行时动态创建变量名称:

JLabel lbl_1char = new JLabel();
JLabel lbl_2char = new JLabel();
// ...

for (int i = 0; i < 10; ++i) {
   lbl_ichar.setText(String.valueOf(word.charAt(i)));
   //  ^
}

这不起作用。您无法在运行时创建变量名称。改为使用数组:

JLabel[] lbl_char = new JLabel[10];
lbl_char[0] = new JLabel();
lbl_char[1] = new JLabel();
// ...

for (int i = 0; i < lbl_char.length; i++) {
   lbl_char[i].setText(String.valueOf(word.charAt(i)));
}

或者,更好的是,使用ArrayList

,而不是使用原始数组
List<JLabel> lbl_char = new ArrayList<>();
lbl_char.add(new JLabel());
lbl_char.add(new JLabel());
// ...

for (JLabel lbl : lbl_char) {
   lbl.setText("Whatever");
}

答案 1 :(得分:1)

尝试做同样的事情,

JLabel lb_char [] =新JLable [10];

然后进入循环后,您可以像这样引用标签,

for (int i = 0; i < 10;++i) {

     lbl_char[i].setText(String.valueOf(word.charAt(i)));
} 

答案 2 :(得分:0)

你不能直接使用循环变量i值,如&#34; lbl_ichar&#34;。

您只想在i值为9时更改值,或者是否要为&#34; lbl_9char&#34;设置新值? ?