如何增加使用 for 循环创建的 jlabels 的变量名?
How to increment the variable names created jlabels using for loop?
java代码:
for (int i = 0; i < 10;++i) {
if (i == 9){
lbl_ichar.setText(String.valueOf(word.charAt(i)));
}
}
此代码显示错误消息(编译时 error:cannot 查找符号
symbol: variable class lbl_ichar) under word lbl_ichar
.但是我已经创建了变量名lbl_0char
,lbl_1char
,lbl_2char
.. .... 最多 lbl_9char
.
我想用名字 lbl_ichar
来呼叫而不是使用 lbl_9char
。在 java 中可以吗?如果可以,如何编码?
您似乎在尝试在运行时动态创建变量名:
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");
}
尝试做同样的事情,
JLabel lb_char[] = new JLable[10];
然后在循环之后你可以像这样引用标签,
for (int i = 0; i < 10;++i) {
lbl_char[i].setText(String.valueOf(word.charAt(i)));
}
不能像"lbl_ichar".
那样直接使用循环变量i值
您只想在 i 值为 9 时更改该值,还是要为 "lbl_9char" 设置新值?
java代码:
for (int i = 0; i < 10;++i) {
if (i == 9){
lbl_ichar.setText(String.valueOf(word.charAt(i)));
}
}
此代码显示错误消息(编译时 error:cannot 查找符号
symbol: variable class lbl_ichar) under word lbl_ichar
.但是我已经创建了变量名lbl_0char
,lbl_1char
,lbl_2char
.. .... 最多 lbl_9char
.
我想用名字 lbl_ichar
来呼叫而不是使用 lbl_9char
。在 java 中可以吗?如果可以,如何编码?
您似乎在尝试在运行时动态创建变量名:
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");
}
尝试做同样的事情,
JLabel lb_char[] = new JLable[10];
然后在循环之后你可以像这样引用标签,
for (int i = 0; i < 10;++i) {
lbl_char[i].setText(String.valueOf(word.charAt(i)));
}
不能像"lbl_ichar".
那样直接使用循环变量i值您只想在 i 值为 9 时更改该值,还是要为 "lbl_9char" 设置新值?