java代码:
for (int i = 0; i < 10;++i) {
if (i == 9){
lbl_ichar.setText(String.valueOf(word.charAt(i)));
}
}
此代码显示错误消息(编译时错误:找不到符号
符号:变量类lbl_ichar)在单词lbl_ichar
下。但我已经创建了变量名称lbl_0char
,lbl_1char
,lbl_2char
......的jlabel ...... {{1 }}
我想通过名称lbl_9char
来调用,而不是使用lbl_ichar
。这可能在java中吗?如果是这样,如何编码呢?
答案 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;设置新值? ?