繁体   English   中英

如何在 Java swing 中动态访问 JLabel 的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM