【问题标题】:Is there a way to creat objects in a foreach loop out of an array有没有办法在数组的 foreach 循环中创建对象
【发布时间】:2015-03-13 17:56:39
【问题描述】:

我试图在每个循环中制作一些按钮,但我无法弄清楚它的正确性。 它甚至有效吗?

        String[] myButtons = {"Label","Checkbox","CheckboxGroup", "Textfield", "TextArea","Choice", "List", "Scrollbar", "ScrolPane", "Ende"};

    for (String buttonName : myButtons) {
        Button buttonName = new Button( buttonName );
    }

【问题讨论】:

  • 您需要更清楚地说明您要做什么以及问题所在。
  • 您可以通过调用.add() 方法将按钮添加到JPanelJFrame

标签: java arrays loops foreach


【解决方案1】:

当然,如果您不尝试重用buttonName,那么您将能够编译并创建一些按钮:

for (String buttonName : myButtons) {
    Button button = new Button( buttonName ); // right here!
}

但你没有对他们做任何事情。也许您想将它们添加到框架中?

for (String buttonName : myButtons) {
    Button button = new Button( buttonName );
    frame.add(button);
}

您确定不想使用JButton

【讨论】:

  • 没问题!很高兴我能帮上忙。
【解决方案2】:

看起来您每次都在重新创建 Button 对象。当您还需要实例化实际 Button 对象的列表时,您只有一个字符串名称列表。试试这个:

String[] buttonNames = {"One", "Two", "Three", "Four", "Five"};
Button[] buttons = new Button[buttonNames.length];
for (int i = 0; i < buttons.length; i++) {
   buttons[i] = new Button(buttonNames[i]);
}

根据您的 Button 对象是什么,您还可以在 for 循环中包含一个匿名函数,该函数会将创建的每个按钮绑定到一个事件侦听器。

【讨论】:

  • 感谢您的提示!
猜你喜欢
  • 2016-04-30
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多