0

我的代码有这个奇怪的问题,我制作了一个标签数组,这样当我将数组传递给另一个类时,这个可以读取并知道我想要移动的标签的位置并更改它的位置,我'已经尝试在所有地方打印以知道数组正在传递什么,在将数组传递给我放置打印的另一个类之前,那一刻的打印具有正确的信息但是当我告诉按钮从我的其他课程并通过它,我得到一个 NullPointerException。

这就是我制作数组的方式

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”

public void getlista(JLabel lista){
        //System.out.println(lista);
    }

就是这个方法,我用来测试

4

1 回答 1

0

我相信您错误地识别了错误的根源。您声明该字段partida但不在任何地方对其进行初始化。该字段默认初始化为null

在尝试调用它的方法之前确保它partida不是,否则你会得到一个 NPE。nullgetlista()

您还没有显示所有代码,因此您可能确实在partida某个地方设置了某些东西,但您应该验证它实际上不是null在您获得 NPE 的地方。

于 2013-08-13T00:29:58.037 回答