Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 将各种类型的组件添加到JComponent引用数组中_Java_Reference_Instantiation_Jcomponent - Fatal编程技术网

Java 将各种类型的组件添加到JComponent引用数组中

Java 将各种类型的组件添加到JComponent引用数组中,java,reference,instantiation,jcomponent,Java,Reference,Instantiation,Jcomponent,我有一个JComponent引用,比如JComponent-allComp[] 现在我想知道这个数组的每个元素都包含不同类型的组件,如下所示 allComp[0]=new JComboBox() allComp[1]=newjbutton() allComp[2]=new JMonthChooser() 我正在尝试并获得空指针异常。这可能吗??如果可能的话怎么办?? 请帮我解决这个问题。 感谢advance您需要创建数组对象本身: JComponent[] allComp = new JComp

我有一个JComponent引用,比如
JComponent-allComp[]
现在我想知道这个数组的每个元素都包含不同类型的组件,如下所示

allComp[0]=new JComboBox()

allComp[1]=newjbutton()

allComp[2]=new JMonthChooser()

我正在尝试并获得空指针异常。这可能吗??如果可能的话怎么办?? 请帮我解决这个问题。
感谢advance

您需要创建数组对象本身:

JComponent[] allComp = new JComponent[ARRAYSIZE]; 

您可能尚未初始化
allComp
,并且它是
null

JComponent allComp[] = new JComponent[MAX_COMPONENTS];
无论如何,如果事先不知道组件的数量,建议使用
列表
而不是数组

List<JComponent> allComp = new ArrayList<>();
allComp.add(new JComboBox());
allComp.add(new JButton());
allComp.add(new JMonthChooser());
List allComp=new ArrayList();
allComp.add(新JComboBox());
allComp.add(newjbutton());
allComp.add(新的JMonthChooser());

我假设您尚未初始化数组

int arraySize = 20;
JComponent allComp[] = new JComponent[arraySize];
像这样做

JComponent allComp[]
只有“声明”对象,这有点像承诺“在代码中的某个地方,我将使用这个对象,但我还没有决定我想要它是什么,所以我没有定义它”

“初始化”是实际创建对象所需的操作。通常情况下,您是用

new

关键字。

您是否记得初始化数组,即allComp=new JComponent[3]?我还建议改为使用列表;)哦,是的……明白了……事实上,编辑并没有给出添加的建议。这就是为什么我忽略了。现在这似乎是个愚蠢的问题。无论如何,谢谢你:)