您对 JLabels 的引用和这些标签的名称感到困惑。您可以在运行时动态更改标签的名称 - 添加/附加您想要的任何内容。但是参考文献完全不同。
在您的情况下,您有 10 个标签。所以制作一个包含 10 个 JLabel 的数组。
JLabel[] myLabels = new JLabel[10];
int i = 0;
for(JLabel label : myLabels) {
label = new JLabel();
label.setName("label" + i); //here i can be dynamically changed at runtime
i++;
}
只是为了澄清
mainLabelX.setVisible(True);
在上面的 mainLabelX 不是标签名称,而是指向您的 JLabel 对象的引用名称。如上所述,您可以使用数组。
更新:
根据上述接受的答案,我提出了一个略有不同的解决方案。
您可以很好地将不断变化的数字附加到标签上,而不是维护地图。请注意,映射是静态的,这意味着如果您的数字是 4,那么其中包含 4 的标签必须可见。因此,您可以遍历标签数组并根据您的设计要求设置其可见性,其名称包含您的编号。
if(label.getName().contains(String.valueOf(yourInteger))) {
label.setVisible(true);
}
我的建议是final private prefix
为您的标签名称制作一个。然后在创建标签时简单地添加数字。
private final String labelPrefix = "label";
for(JLabel label : myLabels) {
label = new JLabel();
label.setName(labelPrefix + i);
i++;
}