如何在 for 循环中设置 JLabel 的属性?
How to set properties of JLabel in a for loop?
我有 10 个 JLabel,分别命名为 label1、label2、label3、...、label10。我想使用 for
循环设置标签中的文本。所以我想要做的是像下面这样:
显然这行不通。
for(int i=1; i<=10; i++){
label+i.setText("label"+i);
}
有什么方法可以做到这一点吗?我真的需要这样做,这样我就不必对所有内容进行硬编码。
您需要将 JLabel 存储在数组中。即:
JLabel[] labels = new JLabel[10];
// Fill that array with your JLables
for (JLabel l : labels) {
l.setText("label"+i);
}
并去掉那些 label1, label2, label3, ... , label10 变量;它们没有用。
这种循环是for-each循环; for (JLabel l : labels)
说 "for each JLabel, l
, of the array labels
"; documentation here. (感谢 Frakcool!)
如果在编译时不知道其确切名称,则无法引用变量。唯一的选择是使用数组(或其他一些集合):
JLabel label0 = new JLabel();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JLabel label3 = new JLabel();
JLabel label4 = new JLabel();
JLabel label5 = new JLabel();
JLabel label6 = new JLabel();
JLabel label7 = new JLabel();
JLabel label8 = new JLabel();
JLabel label9 = new JLabel();
JLabel[] label = new JLabel[] { label0, label1, label2, label3, label4, label5, label6, label7, label8, label9 };
for (int i = 0; i < 10; i++) {
label[i].setText("label" + i);
}
为避免输入过多(以及可能出现的拼写错误),您也可以在循环中创建标签:
JLabel[] label = new JLabel[10];
for (int i = 0; i < 10; i++) {
label[i] = new JLabel();
label[i].setText("label" + i);
}
您仍然可以使用 label[4]
语法引用特定标签。请注意,数组是从 0 开始索引的,因此 label[0]
是第一个元素,label[9]
是第 10 个(最后一个)元素。
我有 10 个 JLabel,分别命名为 label1、label2、label3、...、label10。我想使用 for
循环设置标签中的文本。所以我想要做的是像下面这样:
显然这行不通。
for(int i=1; i<=10; i++){
label+i.setText("label"+i);
}
有什么方法可以做到这一点吗?我真的需要这样做,这样我就不必对所有内容进行硬编码。
您需要将 JLabel 存储在数组中。即:
JLabel[] labels = new JLabel[10];
// Fill that array with your JLables
for (JLabel l : labels) {
l.setText("label"+i);
}
并去掉那些 label1, label2, label3, ... , label10 变量;它们没有用。
这种循环是for-each循环; for (JLabel l : labels)
说 "for each JLabel, l
, of the array labels
"; documentation here. (感谢 Frakcool!)
如果在编译时不知道其确切名称,则无法引用变量。唯一的选择是使用数组(或其他一些集合):
JLabel label0 = new JLabel();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JLabel label3 = new JLabel();
JLabel label4 = new JLabel();
JLabel label5 = new JLabel();
JLabel label6 = new JLabel();
JLabel label7 = new JLabel();
JLabel label8 = new JLabel();
JLabel label9 = new JLabel();
JLabel[] label = new JLabel[] { label0, label1, label2, label3, label4, label5, label6, label7, label8, label9 };
for (int i = 0; i < 10; i++) {
label[i].setText("label" + i);
}
为避免输入过多(以及可能出现的拼写错误),您也可以在循环中创建标签:
JLabel[] label = new JLabel[10];
for (int i = 0; i < 10; i++) {
label[i] = new JLabel();
label[i].setText("label" + i);
}
您仍然可以使用 label[4]
语法引用特定标签。请注意,数组是从 0 开始索引的,因此 label[0]
是第一个元素,label[9]
是第 10 个(最后一个)元素。