Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用另一个变量调用变量?_Java - Fatal编程技术网

Java 如何使用另一个变量调用变量?

Java 如何使用另一个变量调用变量?,java,Java,因此,我的程序中有44个按钮,对于其中一个方法,我希望重新启用所有按钮。这些按钮很容易命名为btn1、btn2、btn3…btn44。有没有一种方法可以使用for循环来启用所有这些功能 我很想做这样的事情,但我找不到必要的资源 for(int i == 0, i < 44, i++){ btn<i>.setEnabled(true); } 我知道这种替代方法并没有那么糟糕,但我的代码中也有类似的地方,像我正在寻找的技术一样非常有用。谢谢大家! 您应该制作一组按钮: But

因此,我的程序中有44个按钮,对于其中一个方法,我希望重新启用所有按钮。这些按钮很容易命名为btn1、btn2、btn3…btn44。有没有一种方法可以使用for循环来启用所有这些功能

我很想做这样的事情,但我找不到必要的资源

for(int i == 0, i < 44, i++){
  btn<i>.setEnabled(true);
}

我知道这种替代方法并没有那么糟糕,但我的代码中也有类似的地方,像我正在寻找的技术一样非常有用。谢谢大家!

您应该制作一组按钮:

Button[] buttons = new Button[44];
for (int i = 0; i < 44; i++) {
    // Do stuff with buttons[i]
}
按钮[]按钮=新按钮[44];
对于(int i=0;i<44;i++){
//用按钮做东西[i]
}

您无法使用变量的字符串名称表示法获取变量的值,因为这将无法很好地编译;这是可能的,但不仅仅是使用Java,还需要一些奇怪的迂回方式。只需使用一个数组。

您应该创建一个按钮数组:

Button[] buttons = new Button[44];
for (int i = 0; i < 44; i++) {
    // Do stuff with buttons[i]
}
按钮[]按钮=新按钮[44];
对于(int i=0;i<44;i++){
//用按钮做东西[i]
}

您无法使用变量的字符串名称表示法获取变量的值,因为这将无法很好地编译;这是可能的,但不仅仅是使用Java,还需要一些奇怪的迂回方式。只需使用一个数组。

创建一个列表来存储所有按钮,并对其进行迭代

...
List<Button> buttons = new ArrayList<>();
buttons.add(btn1);
buttons.add(btn2);
...
buttons.add(btn42);

创建一个列表来存储所有按钮,并对其进行迭代

...
List<Button> buttons = new ArrayList<>();
buttons.add(btn1);
buttons.add(btn2);
...
buttons.add(btn42);

您可以将
按钮
添加到集合中,如
列表
(如果您尚未这样做)。这样就更容易对它们进行迭代

    // this list will grow automatically when you add new elements
    List<Button> buttons = new ArrayList<>();

    // when you create a button in your code, add them to your collection/list
    buttons.add(new Button("1"));
    buttons.add(new Button("2"));
    buttons.add(new Button("3"));
    buttons.add(new Button("4"));
    buttons.add(new Button("5"));
    // etc.

    // in Java 8 you can use lambdas to update your buttons like this
    buttons.forEach(button -> button.setEnabled(true));
//添加新元素时,此列表将自动增长
列表按钮=新建ArrayList();
//在代码中创建按钮时,将其添加到集合/列表中
按钮。添加(新按钮(“1”));
按钮。添加(新按钮(“2”));
按钮。添加(新按钮(“3”);
按钮。添加(新按钮(“4”);
按钮。添加(新按钮(“5”);
//等等。
//在Java8中,可以使用lambdas像这样更新按钮
buttons.forEach(按钮->按钮.setEnabled(true));
只需确保导入的是正确版本的
列表


即确保使用此列表
import java.util.list
而不是windowing toolkit中的按钮(即不导入java.awt.List;)

您可以将
按钮添加到集合中,如
列表(如果您尚未这样做)。这样就更容易对它们进行迭代

    // this list will grow automatically when you add new elements
    List<Button> buttons = new ArrayList<>();

    // when you create a button in your code, add them to your collection/list
    buttons.add(new Button("1"));
    buttons.add(new Button("2"));
    buttons.add(new Button("3"));
    buttons.add(new Button("4"));
    buttons.add(new Button("5"));
    // etc.

    // in Java 8 you can use lambdas to update your buttons like this
    buttons.forEach(button -> button.setEnabled(true));
//添加新元素时,此列表将自动增长
列表按钮=新建ArrayList();
//在代码中创建按钮时,将其添加到集合/列表中
按钮。添加(新按钮(“1”));
按钮。添加(新按钮(“2”));
按钮。添加(新按钮(“3”);
按钮。添加(新按钮(“4”);
按钮。添加(新按钮(“5”);
//等等。
//在Java8中,可以使用lambdas像这样更新按钮
buttons.forEach(按钮->按钮.setEnabled(true));
只需确保导入的是正确版本的
列表



即确保使用此列表
import java.util.list
而不是windowing toolkit中的按钮(即不导入java.awt.List;

为什么不将它们全部存储到数组或列表中?是否在
列表中有所有按钮?如果没有,您如何跟踪它们?您不应该单独保存每个按钮,而应该在
集合
中管理它们,例如
列表
阵列列表
。然后你可以调用
for(按钮b:buttons){Button.setEnabled(true);}
如果
buttons
是所说的列表。@ochi我想OP有
44个独立变量。很好,他现在可以使用数组和列表来消除混乱。@Zabuza这是一个很大的假设。为什么不将它们全部存储到一个数组或列表中呢?在
列表中是否有所有按钮
或类似的按钮?如果没有,您如何跟踪它们?您不应该单独保存每个按钮,而应该在
集合
中管理它们,例如
列表
阵列列表
。然后你可以调用
for(按钮b:buttons){Button.setEnabled(true);}
如果
buttons
是所说的列表。@ochi我想OP有
44个独立变量。很好,他现在可以使用数组和列表来清除杂乱无章的内容。@Zabuza这是一个很大的假设,你正在制作一些集合,比如
List
ArrayList
)。请注意,增强的for循环在这里可能更方便:
for(按钮b:buttons){…}
,但我建议根据问题级别显示这两个按钮。@Zabuza同样有效,尽管我只建议在按钮数量未知且在运行时可以更改时显示。@HyperNeutrino List非常适合这种情况,
ArrayList
在下面使用一个数组,如果将来需要,使用列表将实现更大的灵活性。数组对于处理大量项目仍然很有价值,例如文件的字节或来自网络的流;44个元素决不能代表效率问题。如果数组中的所有元素都未初始化,则此方法将有问题——或者如果需要有超过44个按钮,或者……@ochi——超过44个按钮没有问题,请使用该数字;问题是,如果按钮的数量在运行时发生变化,那么使用集合会更好。在任何情况下,如果使用数组,不要使用幻数
44
-定义它,例如
私有静态最终整数按钮\u COUNT=44因此,如果数字发生变化,您可以在一个位置更改它。我个人会选择@OscarRyz
ArrayList
——更灵活,对
按钮具有良好的随机访问性能。获取(17)
或类似
列表的集合(
ArrayList
f