传递给另一个类Java后指向空位置的数组
我的代码遇到了一个奇怪的问题,我制作了一个标签数组,这样当我将数组传递给另一个类时,这个类可以读取并知道我要移动的标签的位置,并改变它的位置,我尝试了到处打印,以了解数组传递的内容,在将数组传递给另一个类之前,我放置了一个print,此时的print具有正确的信息,但是当我告诉按钮从另一个类调用该方法并传递它时,我得到了一个NullPointerException 这就是我制作数组的方法传递给另一个类Java后指向空位置的数组,java,arrays,class,nullpointerexception,labels,Java,Arrays,Class,Nullpointerexception,Labels,我的代码遇到了一个奇怪的问题,我制作了一个标签数组,这样当我将数组传递给另一个类时,这个类可以读取并知道我要移动的标签的位置,并改变它的位置,我尝试了到处打印,以了解数组传递的内容,在将数组传递给另一个类之前,我放置了一个print,此时的print具有正确的信息,但是当我告诉按钮从另一个类调用该方法并传递它时,我得到了一个NullPointerException 这就是我制作数组的方法 JLabel[] listabolaslabels ; Partida partida;
JLabel[] listabolaslabels ;
Partida partida;
public Gui() {
initComponents();
//partida = new Partida();
setLocationRelativeTo(null);
setResizable( false );
this.listabolaslabels = new JLabel[]{
//Bolas Nivel 1, Jugador 1
this.bolaj1,
this.nivel1j1bola1,
this.nivel1j1bola2,
this.nivel1j1bola3,
//Bolas Nivel 2, Jugador 1
this.nivel2j1bola1,
this.nivel2j1bola2,
this.nivel2j1bola3,
//Bolas Nivel 3, Jugador 1
this.nivel3j1bola1,
this.nivel3j1bola2,
this.nivel1j1bola3,
//Bola Comodin
this.labelcomodin,
//Bolas Nivel 1, Jugador 2
this.nivel1j2bola1,
this.nivel1j2bola2,
this.nivel1j2bola3,
//Bolas Nivel 2, Jugador 2
this.nivel2j2bola1,
this.nivel2j2bola2,
this.nivel2j2bola3,
//Bolas Nivel 3, Jugador 12
this.nivel3j2bola1,
this.nivel3j2bola2,
this.nivel3j2bola3};
}
这是按钮执行的代码
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println(listabolaslabels[0]);
When the program get's to this point it shows the nullpointerexception
partida.getlista(listabolaslabels[0]);
}
同时,在另一类中,在本例中为“Partida”
这就是我用来测试的方法,我相信你误认了错误的来源。您可以声明字段
partida
,但不在任何地方初始化它。默认情况下,此字段初始化为null
在尝试调用其getlista()
方法之前,请确保partida
不是null
,否则您将得到一个NPE
您尚未显示所有代码,因此您可能确实在某个地方设置了
partida
,但您应该验证在获取NPE时它实际上不是null
。非常感谢!这就是问题所在,现在我只需要修复,当我调用方法时,标签移动到最后,它不会随着运动而移动。如果我误解了,请道歉:但是,请考虑使用<代码>列表>代码>,而不是固定数组,例如<代码> ARARYLIST/<代码>或<代码>链接目录> /代码>。列表具有get()
、remove()
和add()
,可用于执行移动操作。如果您的移动逻辑(固定阵列或非固定阵列)仍然有问题,请随时将其作为新问题发布。当然,我会这样做,还有一个问题,您有任何类型的网站可以让我获得如何制作列表的好例子,我制作阵列时遇到了很多麻烦,非常感谢:)(左侧导航菜单上有一个关于列表的特定部分)或(简明扼要)。
public void getlista(JLabel lista){
//System.out.println(lista);
}