我在方法中有以下代码:
public panel(){
aHoles = new JTextField(2);
aBears = new JTextField(2);
aPenguins = new JTextField(2);
aHolesLabel = new JLabel("Amount of holes:");
String[] Vars = {"aHoles", "aBears", "aPenguins", "aHolesLabel"};
for(int x = 0; x < Vars.length; x++){
add(Vars[x]);
}
}
我尝试使用循环将组件添加到JPanel,而不是每次都使用add()
,因为它似乎更有效,但是,这给了我以下错误:
The method add(Component) in the type Container is not applicable for the arguments String
我知道这是因为数组中的字符串,问题是当我将这些字符串转换为变量时,例如:
String[] Vars = {aHoles, aBears, aPenguins, aHolesLabel};
它也给了我一个错误,因为你不能在数组中有变量。
这有可能的解决方法吗?或者我应该手动使用add(Component)
而不是循环使用?
答案 0 :(得分:4)
它也给了我一个错误,因为你不能在数组中有变量。
不,它会给您一个错误,因为您无法将Component
个对象存储在String
的数组中。如果使用适当类型的数组,则可以在其初始值设定项中包含变量:
aHoles = new JTextField(2);
aBears = new JTextField(2);
aPenguins = new JTextField(2);
aHolesLabel = new JLabel("Amount of holes:");
Component[] components = {aHoles, aBears, aPenguins, aHolesLabel};
在初始化字段后声明components
非常重要。