Java 初始化JComboBox[]数组
对不起,我是java的noob,但是如何在不将变量petList设置为null的情况下初始化它呢Java 初始化JComboBox[]数组,java,arrays,swing,jcombobox,Java,Arrays,Swing,Jcombobox,对不起,我是java的noob,但是如何在不将变量petList设置为null的情况下初始化它呢 for (int x = 0;x<= buttonPressed;x++){ println("adding box"); String[] petStrings = { "Withdraw", "Deposit", "Blah", }; //Create the combo box, select item at index 4. @SuppressWar
for (int x = 0;x<= buttonPressed;x++){
println("adding box");
String[] petStrings = { "Withdraw", "Deposit", "Blah", };
//Create the combo box, select item at index 4.
@SuppressWarnings({ "rawtypes", "unchecked" })
JComboBox petList[] = null;// = new JComboBox(petStrings);
petList[x] = new JComboBox(petStrings);
petList[x].setSelectedIndex(1);
petList[x].setBounds(119, (buttonPressed *20)+15, 261, 23);
contentPane.add(petList[x]);
}
你需要循环。这将导致其他错误,如边界重叠,但这应该是要点:
JComboBox[] petList = new JComboBox[petStrings.length];
for(int i=0; i<petStrings.length; i++){
petList[i]=new JComboBox(petStrings[i]);
}
你需要循环。这将导致其他错误,如边界重叠,但这应该是要点:
JComboBox[] petList = new JComboBox[petStrings.length];
for(int i=0; i<petStrings.length; i++){
petList[i]=new JComboBox(petStrings[i]);
}
创建数组时必须考虑的三件事情:
声明:JComboBox[]petList; 初始化数组:petList=newjcombobox[someSize]; 赋值:petList[i]=新的JComboBox; 因此,将petList置于for循环之外,也许将其定义为实例变量会更好:public class YourClass{
//instance variables
private JComboBox[] petList; // you just declared an array of petList
private static final int PET_SIZE = 4;// assuming
//Constructor
public YourClass(){
petList = new JComboBox[PET_SIZE]; // here you initialed it
for(int i = 0 ; i < petList.length; i++){
//.......
petList[i] = new JComboBox(); // here you assigned each index to avoid `NullPointerException`
//........
}
}}
注:这不是一个编译的代码,它只会演示你解决问题的方法。 < P >三个必须考虑创建数组的事情: 声明:JComboBox[]petList; 初始化数组:petList=newjcombobox[someSize]; 赋值:petList[i]=新的JComboBox; 因此,将petList置于for循环之外,也许将其定义为实例变量会更好:
public class YourClass{
//instance variables
private JComboBox[] petList; // you just declared an array of petList
private static final int PET_SIZE = 4;// assuming
//Constructor
public YourClass(){
petList = new JComboBox[PET_SIZE]; // here you initialed it
for(int i = 0 ; i < petList.length; i++){
//.......
petList[i] = new JComboBox(); // here you assigned each index to avoid `NullPointerException`
//........
}
}}
注意:这不是已编译的代码,只演示如何解决问题。首先创建数组本身:JComboBox petList[]=new JComboBox[sizeHere];无关:永远不要对组件进行任何手动大小调整/定位-这是LayoutManager的专有任务。只是约定的一点,在声明数组时,最好将大括号放在声明的类型旁边,而不是标识符之后。所以jComboxPetList[];将是JComboBox[]petList;。别人那样读比较容易。Donald Knuth引用了相关的话;让我们集中精力向人类解释我们希望计算机首先记录数组本身的内容:JComboBox petList[]=newjcombobox[sizeHere];无关:永远不要对组件进行任何手动大小调整/定位-这是LayoutManager的专有任务。只是约定的一点,在声明数组时,最好将大括号放在声明的类型旁边,而不是标识符之后。所以jComboxPetList[];将是JComboBox[]petList;。别人那样读比较容易。Donald Knuth引用了相关的话;让我们集中精力向人类解释我们想要一台计算机做什么我太蠢了,我不知道如何在评论中发布代码。而且这是可行的,但我认为我最初的目标编码错误。我希望它根据按下的int按钮的大小创建多个框。但不管怎样,它只创建了一个框。是的,我明白了,这是另一个主题,因为你的问题中没有提到它,试着读这行:如果你有时间,我们可以堆叠,试着阅读,知道如何投票,特别是接受答案和其他规则,因为这不是最后一次提问和回答问题,祝你好运:哈哈,我太笨了,我想不出如何在评论中发布代码。而且这是可行的,但我认为我最初的目标编码错误。我希望它根据按下的int按钮的大小创建多个框。但不管怎样,它只创建了一个框。是的,我明白了,这是另一个主题,因为你的问题中没有提到它,请尝试阅读这行:如果你有时间,请尝试阅读,了解如何投票,特别是接受答案和其他规则,因为这不是最后一次提问和回答问题,祝你好运: