在 Java 应用程序 UI 中,有 10 个带有名称的标签:
mainLabel1
mainLabel2
...
mainLabel10
和一个原始变量(整数):
int x = 4;
假设“x”值在应用程序的执行过程中不断变化,因此该值是未知的。有一次,应用程序需要将其中一个标签的可见性更改为 true:
mainLabelX.setVisible(true);
问题 是否有使用“x”的值(示例为 4)作为标签名称的最后一部分的简单/简单解决方案,以便对 setVisible 的调用如下所示:
mainLabelX.setVisible(True);
“x”变量的值可以用作标签名称的一部分吗?目前,我使用了很多 if 语句,它绝对不是唯一/最好的解决方案。
最佳答案
在任何情况下,您都必须检查哪个 Label 满足条件,因此您需要 Map<Integer, Label>
:
Map<Integer, Label> labelMap = new HashMap<Integer, Label>():
...
Label l = map.get(x);
l.setVisible(true);
如果您将所有标签命名为:mainLabel1
, mainLabel2
你应该给它们添加一个字段名,将它们保存在 List
中并迭代它以获得正确的 List
:
List<Label> list = new ArrayList<>();
for(Label l: list){
if(label.getName().equals("aName"))
l.setVisible(true);
}
虽然我不认为后者是一个优雅的解决方案。
关于java - 使用变量值来选择要更改的 UI 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655417/