Java 如何使用另一个变量调用变量?
因此,我的程序中有44个按钮,对于其中一个方法,我希望重新启用所有按钮。这些按钮很容易命名为btn1、btn2、btn3…btn44。有没有一种方法可以使用for循环来启用所有这些功能 我很想做这样的事情,但我找不到必要的资源Java 如何使用另一个变量调用变量?,java,Java,因此,我的程序中有44个按钮,对于其中一个方法,我希望重新启用所有按钮。这些按钮很容易命名为btn1、btn2、btn3…btn44。有没有一种方法可以使用for循环来启用所有这些功能 我很想做这样的事情,但我找不到必要的资源 for(int i == 0, i < 44, i++){ btn<i>.setEnabled(true); } 我知道这种替代方法并没有那么糟糕,但我的代码中也有类似的地方,像我正在寻找的技术一样非常有用。谢谢大家! 您应该制作一组按钮: But
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代码>因此,如果数字发生变化,您可以在一个位置更改它。我个人会选择@OscarRyzArrayList
——更灵活,对按钮具有良好的随机访问性能。获取(17)
或类似列表的集合(ArrayList
f