【问题标题】:How to dynamically create JLabels with different names [duplicate]如何动态创建具有不同名称的 JLabel [重复]
【发布时间】:2016-10-13 17:06:32
【问题描述】:

我正在尝试为 ArrayList PantryNames 中的每个名称不断创建 JLabels。这是我当前的代码:

for(int i = 0; i < FoodApp.getPantryNames().size(); i++){
        JLabel lblNewLabel = new JLabel((String) FoodApp.getPantryNames().get(i));
        contentPane.add(lblNewLabel, BorderLayout.WEST);
    }

我希望将 lblNewLabel 设置为“成分”+ (i + 1)。例如,第一种食物是成分 1,依此类推。此外,在 contentPane 中,lblNewLabel 必须是成分 + (i + 1)。谢谢!

【问题讨论】:

  • 试图创建动态命名的变量而不是 Java 方式,它对变量名的重视程度超出了应有的程度。它们几乎不存在于 Java 代码中,更重要的是对对象的引用。请参阅this similar question 了解更多信息。

标签: java jlabel dynamic-variables


【解决方案1】:

这不是变量在 Java 中的工作方式,您不能像那样动态设置变量名。相反,我会使用List&lt;JLabel&gt;

ArrayList<JLabel> labels = new ArrayList<JLabel>();
for(int i = 0; i < FoodApp.getPantryNames().size(); i++){
    JLabel temp = new JLabel((String) FoodApp.getPantryNames().get(i));
    labels.add(temp);
    contentPane.add(temp, BorderLayout.WEST);
}

您也可以在再次需要标签时致电contentPane.getComponents()

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 2013-07-23
    • 1970-01-01
    • 2012-05-20
    • 2016-06-22
    相关资源
    最近更新 更多