Java 如何在for循环中设置JLabel的属性?
我有10个jLabel,分别命名为label1、label2、label3、,标签10。我想使用for循环设置标签中的文本。因此,我希望能够做到以下几点: 显然这不起作用Java 如何在for循环中设置JLabel的属性?,java,for-loop,jlabel,Java,For Loop,Jlabel,我有10个jLabel,分别命名为label1、label2、label3、,标签10。我想使用for循环设置标签中的文本。因此,我希望能够做到以下几点: 显然这不起作用 for(int i=1; i<=10; i++){ label+i.setText("label"+i); } 有什么办法可以做到这一点吗?我真的需要这样做,这样我就不必对所有内容进行硬编码。您需要将JLabel存储在一个数组中。即: JLabel[] labels = new JLabel[10]; // F
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);
}
去掉那些标签1,标签2,标签3,label10变量;它们没有用
这种类型的循环是每个循环的一个循环;对于JLabel:标签表示数组标签的每个JLabel,l;谢谢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索引的,因此标签[0]是第一个元素,标签[9]是第十个最后一个元素。这是如何工作的?你能解释一下:做什么,这个程序在做什么吗?@LakshyaGoyal这种for循环称为a for each循环:参见。:表示打开,因此您可以将上面的示例理解为:for each JLabel onlabels@GKFX不客气;你应该在你的回答中加上我的评论:这看起来不错,但我的问题只是我实际想做的事情的简化版本。我正在试着做。设置图标。那么你的方法仍然有效吗?另外,由于我的JFrame上有10个不同的JLabel,我是否必须在循环中调用repaint和reValidate?setIcon应该像setText一样工作。若有的话,您可能希望在父组件框架或面板上调用repait和revalidate。您可以在完成所有标签的更改后执行一次。