[英]How to access value of JLabel dynamically in Java swing?
我得到了大约 11 个 Jlabel,其名称为 num1、num2.... num{11}。 这些 Jlabel 变量名称具有名称前缀。 但我想从这些文本字段中获得类似的价值:
(prefix + i).setText("something")
但这给了我一个错误。有没有办法动态设置这些标签的文本?
虽然我做到了......但是代码不再是干的了:'(
if(i == 0) {
num0.setText(data[i] + "");
if(data[i] == 0) {
num0.setText("");
}
}
if(i == 1) {
num1.setText(data[i] + "");
if(data[i] == 0) {
num1.setText("");
}
}
if(i == 2) {
num2.setText(data[i] + "");
if(data[i] == 0) {
num2.setText("");
}
}
if(i == 3) {
num3.setText(data[i] + "");
if(data[i] == 0) {
num3.setText("");
}
}
if(i == 4) {
num4.setText(data[i] + "");
if(data[i] == 0) {
num4.setText("");
}
}
if(i == 5) {
num5.setText(data[i] + "");
if(data[i] == 0) {
num5.setText("");
}
}
if(i == 6) {
num6.setText(data[i] + "");
if(data[i] == 0) {
num6.setText("");
}
}
if(i == 7) {
num7.setText(data[i] + "");
if(data[i] == 0) {
num7.setText("");
}
}
if(i == 8) {
num8.setText(data[i] + "");
if(data[i] == 0) {
num8.setText("");
}
}
if(i == 9) {
num9.setText(data[i] + "");
if(data[i] == 0) {
num9.setText("");
}
}
if(i == 10) {
num10.setText(data[i] + "");
if(data[i] == 0) {
num10.setText("");
}
}
if(i == 11) {
num11.setText(data[i] + "");
if(data[i] == 0) {
num11.setText("");
}
}
将您的 JLabel 放入数组或 ArrayList 中并通过索引访问它们。
ArrayList<JLabel> labels = new ArrayList<>();
labels.add(num1);
labels.add(num2);
...
int i=0;
for (JLabel label: labels) {
label.setText(data[i] + "");
if(data[i] == 0) {
label.setText("");
}
i++;
}
如果你只想在标签上附加一些东西,你可以使用
label.setText(label.getText()+"-appendix");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.