0

Me encuentro realizando un pequeño trivial de cine. El trivial tiene un modo de juego concreto, que intento mostrarte en una interfaz gráfica, pero me lanza null pointer, por lo que los campos que deben completarse no se completan... y ahí estoy atascado. Procedo a compartir las dos pantallas (La primera, donde eliges el modo de juego y la dificultad, la 2 es el juego en sí, pero no me hace nada porque, digamos, que de una pantalla a otra, algo falla). pido disculpas por el código, pero al ser interfaces gráficas, incluyen todos los comandos para los botones, label, etc Pantalla 1:

public class PantallaModoJuego extends JPanel {
    private PantallaJuego pantallaModo;
    private Cancion miCancion;
    private Dialogos miDialogo;
    private CompletaLaFrase miFrase;
    private Partida miPartida;
    public PantallaModoJuego(final PantallaJuego p) {

        this.pantallaModo = p;

        GridBagLayout gridBagLayout = new GridBagLayout();
        gridBagLayout.columnWidths = new int[] { 0, 0, 0, 183, 330, 168, 0, 0, 0, 0 };
        gridBagLayout.rowHeights = new int[] { 0, 0, 30, 76, 0, 75, 0, 0, 67, 0, 0, 72, 0, 0, 0, 0, 61, 0, 0 };
        gridBagLayout.columnWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
        gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
        setLayout(gridBagLayout);

        JLabel lblTitulo = new JLabel("Film Quizz");
        lblTitulo.setFont(new Font("Rockwell", Font.BOLD, 25));
        GridBagConstraints gbc_lblTitulo = new GridBagConstraints();
        gbc_lblTitulo.gridwidth = 3;
        gbc_lblTitulo.gridheight = 2;
        gbc_lblTitulo.insets = new Insets(0, 0, 5, 5);
        gbc_lblTitulo.gridx = 3;
        gbc_lblTitulo.gridy = 1;
        add(lblTitulo, gbc_lblTitulo);

        JLabel lblModo = new JLabel("Elige el modo de juego y la dificultad");
        lblModo.setFont(new Font("Rockwell", Font.PLAIN, 18));
        GridBagConstraints gbc_lblModo = new GridBagConstraints();
        gbc_lblModo.gridwidth = 3;
        gbc_lblModo.insets = new Insets(0, 0, 5, 5);
        gbc_lblModo.gridx = 3;
        gbc_lblModo.gridy = 3;
        add(lblModo, gbc_lblModo);

        JLabel lblCancion = new JLabel("Escuchar\u00E1s la banda sonora de una pel\u00EDcula. ");
        GridBagConstraints gbc_lblCancion = new GridBagConstraints();
        gbc_lblCancion.gridwidth = 3;
        gbc_lblCancion.insets = new Insets(0, 0, 5, 5);
        gbc_lblCancion.gridx = 3;
        gbc_lblCancion.gridy = 6;
        add(lblCancion, gbc_lblCancion);

        JLabel lblDialogos = new JLabel("Se mostrar\u00E1 el di\u00E1logo/frase de una pel\u00EDcula");
        GridBagConstraints gbc_lblDialogos = new GridBagConstraints();
        gbc_lblDialogos.gridwidth = 3;
        gbc_lblDialogos.insets = new Insets(0, 0, 5, 5);
        gbc_lblDialogos.gridx = 3;
        gbc_lblDialogos.gridy = 9;
        add(lblDialogos, gbc_lblDialogos);

        JLabel lblCompletaFrase = new JLabel("Deber\u00E1s completar la frase/di\u00E1logo de una pel\u00EDcula");
        GridBagConstraints gbc_lblCompletaFrase = new GridBagConstraints();
        gbc_lblCompletaFrase.gridwidth = 3;
        gbc_lblCompletaFrase.insets = new Insets(0, 0, 5, 5);
        gbc_lblCompletaFrase.gridx = 3;
        gbc_lblCompletaFrase.gridy = 12;
        add(lblCompletaFrase, gbc_lblCompletaFrase);

        JLabel lblNewLabel = new JLabel("Selecciona aqu\u00ED la dificultad");
        lblNewLabel.setFont(new Font("Rockwell", Font.BOLD, 15));
        GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
        gbc_lblNewLabel.gridwidth = 3;
        gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
        gbc_lblNewLabel.gridx = 3;
        gbc_lblNewLabel.gridy = 14;
        add(lblNewLabel, gbc_lblNewLabel);

        final JRadioButton RdbtnFacil = new JRadioButton("F\u00E1cil");
        GridBagConstraints gbc_RdbtnFacil = new GridBagConstraints();
        gbc_RdbtnFacil.gridwidth = 3;
        gbc_RdbtnFacil.insets = new Insets(0, 0, 5, 5);
        gbc_RdbtnFacil.gridx = 1;
        gbc_RdbtnFacil.gridy = 15;
        add(RdbtnFacil, gbc_RdbtnFacil);

        final JRadioButton RdbtnIntermedio = new JRadioButton("Intermedio");
        GridBagConstraints gbc_RdbtnIntermedio = new GridBagConstraints();
        gbc_RdbtnIntermedio.insets = new Insets(0, 0, 5, 5);
        gbc_RdbtnIntermedio.gridx = 4;
        gbc_RdbtnIntermedio.gridy = 15;
        add(RdbtnIntermedio, gbc_RdbtnIntermedio);

        final JRadioButton RdbtnDificil = new JRadioButton("Dificil");
        GridBagConstraints gbc_RdbtnDificil = new GridBagConstraints();
        gbc_RdbtnDificil.gridwidth = 3;
        gbc_RdbtnDificil.insets = new Insets(0, 0, 5, 5);
        gbc_RdbtnDificil.gridx = 5;
        gbc_RdbtnDificil.gridy = 15;
        add(RdbtnDificil, gbc_RdbtnDificil);

        JLabel lbltxtFacil = new JLabel("Para novatos. Lo raro ser\u00EDa que no lo superaras");
        lbltxtFacil.setFont(new Font("Rockwell", Font.PLAIN, 12));
        GridBagConstraints gbc_lbltxtFacil = new GridBagConstraints();
        gbc_lbltxtFacil.gridheight = 2;
        gbc_lbltxtFacil.gridwidth = 3;
        gbc_lbltxtFacil.insets = new Insets(0, 0, 5, 5);
        gbc_lbltxtFacil.gridx = 1;
        gbc_lbltxtFacil.gridy = 16;
        add(lbltxtFacil, gbc_lbltxtFacil);

        JLabel lblNewLabel_1 = new JLabel("El nivel sube. Si eres cin\u00E9filo tendr\u00E1s posibilidades");
        lblNewLabel_1.setFont(new Font("Rockwell", Font.PLAIN, 12));
        GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints();
        gbc_lblNewLabel_1.gridheight = 2;
        gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5);
        gbc_lblNewLabel_1.gridx = 4;
        gbc_lblNewLabel_1.gridy = 16;
        add(lblNewLabel_1, gbc_lblNewLabel_1);

        JLabel lblNewLabel_3 = new JLabel("Suerte...la necesitar\u00E1s");
        lblNewLabel_3.setFont(new Font("Rockwell", Font.PLAIN, 12));
        GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints();
        gbc_lblNewLabel_3.gridheight = 2;
        gbc_lblNewLabel_3.gridwidth = 3;
        gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5);
        gbc_lblNewLabel_3.gridx = 5;
        gbc_lblNewLabel_3.gridy = 16;
        add(lblNewLabel_3, gbc_lblNewLabel_3);
        ButtonGroup grupoDificultad = new ButtonGroup();
        grupoDificultad.add(RdbtnDificil);
        grupoDificultad.add(RdbtnIntermedio);
        grupoDificultad.add(RdbtnFacil);

        JButton botonCanciones = new JButton("CANCIONES");
        botonCanciones.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (RdbtnFacil.isSelected()) {
                    
                    
                    pantallaModo.cambiarAPantalla("Canciones", miCancion, null, null);
                } else if (RdbtnIntermedio.isSelected()) {

                    pantallaModo.cambiarAPantalla("Canciones", miCancion, null, null);
                } else if (RdbtnDificil.isSelected()) {

                    pantallaModo.cambiarAPantalla("Canciones", miCancion, null, null);
                } else {
                    JOptionPane.showMessageDialog(pantallaModo,
                            "El Sombrero Seleccionador dice: No has seleccionado la dificultad", "Elige la dificultad",
                            JOptionPane.ERROR_MESSAGE);
                }
            }
        });

        botonCanciones.setBackground(SystemColor.inactiveCaptionBorder);
        botonCanciones.setForeground(SystemColor.activeCaption);
        botonCanciones.setFont(new Font("Rockwell", Font.BOLD, 15));
        GridBagConstraints gbc_botonCanciones = new GridBagConstraints();
        gbc_botonCanciones.gridwidth = 3;
        gbc_botonCanciones.insets = new Insets(0, 0, 5, 5);
        gbc_botonCanciones.gridx = 3;
        gbc_botonCanciones.gridy = 5;
        add(botonCanciones, gbc_botonCanciones);

        JButton botonCompletaF = new JButton("COMPLETA LA FRASE");
        botonCompletaF.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (RdbtnFacil.isSelected()) {

                    pantallaModo.cambiarAPantalla("CompletaFrase", null, null, miFrase);
                } else if (RdbtnIntermedio.isSelected()) {

                    pantallaModo.cambiarAPantalla("CompletaFrase", null, null, miFrase);
                } else if (RdbtnDificil.isSelected()) {

                    pantallaModo.cambiarAPantalla("CompletaFrase", null, null, miFrase);
                } else {
                    JOptionPane.showMessageDialog(pantallaModo,
                            "El Sombrero Seleccionador dice: No has seleccionado la dificultad", "Elige la dificultad",
                            JOptionPane.ERROR_MESSAGE);
                }
            }
        });
        botonCompletaF.setBackground(SystemColor.inactiveCaptionBorder);
        botonCompletaF.setForeground(SystemColor.activeCaption);
        botonCompletaF.setFont(new Font("Rockwell", Font.BOLD, 15));
        GridBagConstraints gbc_botonCompletaF = new GridBagConstraints();
        gbc_botonCompletaF.gridwidth = 3;
        gbc_botonCompletaF.insets = new Insets(0, 0, 5, 5);
        gbc_botonCompletaF.gridx = 3;
        gbc_botonCompletaF.gridy = 11;
        add(botonCompletaF, gbc_botonCompletaF);

        JButton botonDialogos = new JButton("DI\u00C1LOGOS");
        botonDialogos.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (RdbtnFacil.isSelected()) {

                    pantallaModo.cambiarAPantalla("Dialogos", null, miDialogo, null);
                } else if (RdbtnIntermedio.isSelected()) {

                    pantallaModo.cambiarAPantalla("Dialogos", null, miDialogo, null);

                } else if (RdbtnDificil.isSelected()) {

                    pantallaModo.cambiarAPantalla("Dialogos", null, miDialogo, null);
                } else {
                    JOptionPane.showMessageDialog(pantallaModo,
                            "El Sombrero Seleccionador dice: No has seleccionado la dificultad", "Elige la dificultad",
                            JOptionPane.ERROR_MESSAGE);
                }
            }
        });

        botonDialogos.setBackground(SystemColor.inactiveCaptionBorder);
        botonDialogos.setForeground(SystemColor.activeCaption);
        botonDialogos.setFont(new Font("Rockwell", Font.BOLD, 15));
        GridBagConstraints gbc_botonDialogos = new GridBagConstraints();
        gbc_botonDialogos.gridwidth = 3;
        gbc_botonDialogos.insets = new Insets(0, 0, 5, 5);
        gbc_botonDialogos.gridx = 3;
        gbc_botonDialogos.gridy = 8;
        add(botonDialogos, gbc_botonDialogos);
    }

    public PantallaJuego getPantallaModo() {
        return pantallaModo;
    }

    public void setPantallaModo(PantallaJuego pantallaModo) {
        this.pantallaModo = pantallaModo;
    }

}

Pantalla 2: la que nunca se ejecuta, porque no se me crean bien los objetos de la pantalla 1

package pantallas;

import javax.swing.JPanel;

import clases.Cancion;
import clases.Partida;
import clases.Pregunta;
import clases.PreguntaJugada;

import java.awt.GridBagLayout;
import javax.swing.JLabel;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.util.ArrayList;
import java.util.Random;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JDialog;

import java.awt.Color;
import java.awt.SystemColor;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.SwingConstants;

public class PantallaCancion extends JPanel {

    private Pregunta pregunta;
    private PantallaJuego pantallaJuego;
    private Cancion cancion;

    public PantallaCancion(PantallaJuego pantalla, final Cancion cancionActual) {

        this.pantallaJuego = pantalla;

        setBackground(new Color(0, 153, 255));
        GridBagLayout gridBagLayout = new GridBagLayout();
        gridBagLayout.columnWidths = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 72, 0, 0, 0 };
        gridBagLayout.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
        gridBagLayout.columnWeights = new double[] { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0,
                0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
        gridBagLayout.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                0.0, 0.0, 0.0, Double.MIN_VALUE };
        setLayout(gridBagLayout);

        JLabel lblNewLabel = new JLabel("Film Quizz");
        lblNewLabel.setFont(new Font("Rockwell", Font.BOLD, 40));
        GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
        gbc_lblNewLabel.gridwidth = 5;
        gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
        gbc_lblNewLabel.gridx = 6;
        gbc_lblNewLabel.gridy = 1;
        add(lblNewLabel, gbc_lblNewLabel);

        JLabel lblNombreJuego = new JLabel("Canciones");
        lblNombreJuego.setFont(new Font("Rockwell", Font.BOLD | Font.ITALIC, 20));
        GridBagConstraints gbc_lblNombreJuego = new GridBagConstraints();
        gbc_lblNombreJuego.gridheight = 2;
        gbc_lblNombreJuego.gridwidth = 5;
        gbc_lblNombreJuego.insets = new Insets(0, 0, 5, 5);
        gbc_lblNombreJuego.gridx = 1;
        gbc_lblNombreJuego.gridy = 2;
        add(lblNombreJuego, gbc_lblNombreJuego);

        JLabel labelVidas = new JLabel("Vidas");
        labelVidas.setHorizontalAlignment(SwingConstants.LEFT);
        labelVidas.setFont(new Font("Rockwell", Font.BOLD, 20));
        GridBagConstraints gbc_labelVidas = new GridBagConstraints();
        gbc_labelVidas.gridwidth = 3;
        gbc_labelVidas.insets = new Insets(0, 0, 5, 5);
        gbc_labelVidas.gridx = 10;
        gbc_labelVidas.gridy = 4;
        add(labelVidas, gbc_labelVidas);

        byte numeroVidas = pantallaJuego.partidaActual.getVidas();
        JLabel lblNumeroVidas = new JLabel(String.valueOf(numeroVidas));
        GridBagConstraints gbc_lblNumeroVidas = new GridBagConstraints();
        gbc_lblNumeroVidas.insets = new Insets(0, 0, 5, 5);
        gbc_lblNumeroVidas.gridx = 13;
        gbc_lblNumeroVidas.gridy = 4;
        add(lblNumeroVidas, gbc_lblNumeroVidas);

        JButton btnComrparVidas = new JButton("Comprar Vidas");
        btnComrparVidas.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //Restar dinero
                //Sumar vida
            }
        });
        GridBagConstraints gbc_btnComrparVidas = new GridBagConstraints();
        gbc_btnComrparVidas.insets = new Insets(0, 0, 5, 5);
        gbc_btnComrparVidas.gridx = 14;
        gbc_btnComrparVidas.gridy = 4;
        add(btnComrparVidas, gbc_btnComrparVidas);

        JLabel lblNombreJugador = new JLabel(pantallaJuego.usuarioLogado.getApodo());
        lblNombreJugador.setFont(new Font("Rockwell", Font.BOLD, 20));
        GridBagConstraints gbc_lblNombreJugador = new GridBagConstraints();
        gbc_lblNombreJugador.gridheight = 2;
        gbc_lblNombreJugador.gridwidth = 5;
        gbc_lblNombreJugador.insets = new Insets(0, 0, 5, 5);
        gbc_lblNombreJugador.gridx = 1;
        gbc_lblNombreJugador.gridy = 5;
        add(lblNombreJugador, gbc_lblNombreJugador);

        JLabel lblPuntos = new JLabel("Puntos");
        lblPuntos.setFont(new Font("Rockwell", Font.BOLD, 20));
        GridBagConstraints gbc_lblPuntos = new GridBagConstraints();
        gbc_lblPuntos.gridwidth = 3;
        gbc_lblPuntos.insets = new Insets(0, 0, 5, 5);
        gbc_lblPuntos.gridx = 10;
        gbc_lblPuntos.gridy = 5;
        add(lblPuntos, gbc_lblPuntos);

        short puntosPartida = pantallaJuego.partidaActual.getPuntos();

        JLabel lblNumeroPuntos = new JLabel(String.valueOf(puntosPartida));
        GridBagConstraints gbc_lblNumeroPuntos = new GridBagConstraints();
        gbc_lblNumeroPuntos.insets = new Insets(0, 0, 5, 5);
        gbc_lblNumeroPuntos.gridx = 13;
        gbc_lblNumeroPuntos.gridy = 5;
        add(lblNumeroPuntos, gbc_lblNumeroPuntos);

        JLabel lblDinero = new JLabel("Dinero");
        lblDinero.setFont(new Font("Rockwell", Font.BOLD, 20));
        GridBagConstraints gbc_lblDinero = new GridBagConstraints();
        gbc_lblDinero.gridwidth = 3;
        gbc_lblDinero.insets = new Insets(0, 0, 5, 5);
        gbc_lblDinero.gridx = 10;
        gbc_lblDinero.gridy = 6;
        add(lblDinero, gbc_lblDinero);

        short dinero = (short) pantallaJuego.usuarioLogado.getDinero();
        JLabel lblCantidadDinero = new JLabel(String.valueOf(dinero));
        GridBagConstraints gbc_lblCantidadDinero = new GridBagConstraints();
        gbc_lblCantidadDinero.insets = new Insets(0, 0, 5, 5);
        gbc_lblCantidadDinero.gridx = 13;
        gbc_lblCantidadDinero.gridy = 6;
        add(lblCantidadDinero, gbc_lblCantidadDinero);

        final ArrayList<Byte> opcionesPosibles = new ArrayList<Byte>();
        final Random r = new Random();
        opcionesPosibles.add((byte) 0);
        opcionesPosibles.add((byte) 1);
        opcionesPosibles.add((byte) 2);
        opcionesPosibles.add((byte) 3);

        final JButton botonOpcion1 = new JButton(
                cancionActual.getOpciones()[opcionesPosibles.remove(r.nextInt(opcionesPosibles.size()))]);
        botonOpcion1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {

                if (botonOpcion1.getText().equals(cancionActual.getOpcionCorrecta())) {

                    // sumar 150 puntos
                    // sumar 130 dinero

                    // Quitar de array por jugar
                    // Insertar en array ya jugado
                    // boolean acertado true
                    // boolean jugado true
                    // cambiar a pantallaCancion con otra cancion

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, true));
                } else {

                    // restar 1 vida

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, false));

                }
                JDialog acierto=new JDialog();
                // Lanzas jDialogu
                pantallaJuego.cambiarAPantalla("Cancion",
                        (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().peek(), null, null);
            }
        });

        botonOpcion1.setFont(new Font("Rockwell", Font.PLAIN, 20));
        GridBagConstraints gbc_botonOpcion1 = new GridBagConstraints();
        gbc_botonOpcion1.insets = new Insets(0, 0, 5, 5);
        gbc_botonOpcion1.gridx = 6;
        gbc_botonOpcion1.gridy = 10;
        add(botonOpcion1, gbc_botonOpcion1);

        final JButton botonOpcion2 = new JButton(
                cancionActual.getOpciones()[opcionesPosibles.remove(r.nextInt(opcionesPosibles.size()))]);
        botonOpcion2.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (botonOpcion2.getText().equals(cancionActual.getOpcionCorrecta())) {

                    // sumar 150 puntos
                    // sumar 130 dinero

                    // Quitar de array por jugar
                    // Insertar en array ya jugado
                    // boolean acertado true
                    // boolean jugado true
                    // cambiar a pantallaCancion con otra cancion

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, true));
                } else {

                    // restar 1 vida

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, false));

                }

                // Lanzas jDialogu
                pantallaJuego.cambiarAPantalla("Cancion",
                        (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().peek(), null, null);

            }
        });
        botonOpcion2.setFont(new Font("Rockwell", Font.PLAIN, 20));
        GridBagConstraints gbc_botonOpcion2 = new GridBagConstraints();
        gbc_botonOpcion2.insets = new Insets(0, 0, 5, 5);
        gbc_botonOpcion2.gridx = 10;
        gbc_botonOpcion2.gridy = 10;
        add(botonOpcion2, gbc_botonOpcion2);

        final JButton botonOpcion3 = new JButton(
                cancionActual.getOpciones()[opcionesPosibles.remove(r.nextInt(opcionesPosibles.size()))]);
        botonOpcion3.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (botonOpcion3.getText().equals(cancionActual.getOpcionCorrecta())) {

                    // sumar 150 puntos
                    // sumar 130 dinero

                    // cambiar a pantallaCancion con otra cancion

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, true));
                } else {

                    // restar 1 vida

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, false));

                }

                // Lanzas jDialogu
                pantallaJuego.cambiarAPantalla("Cancion",
                        (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().peek(), null, null);

            }
        });
        botonOpcion3.setFont(new Font("Rockwell", Font.PLAIN, 20));
        GridBagConstraints gbc_botonOpcion3 = new GridBagConstraints();
        gbc_botonOpcion3.insets = new Insets(0, 0, 5, 5);
        gbc_botonOpcion3.gridx = 6;
        gbc_botonOpcion3.gridy = 12;
        add(botonOpcion3, gbc_botonOpcion3);

        final JButton botonOpcion4 = new JButton(
                cancionActual.getOpciones()[opcionesPosibles.remove(r.nextInt(opcionesPosibles.size()))]);
        botonOpcion4.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (botonOpcion4.getText().equals(cancionActual.getOpcionCorrecta())) {

                    // sumar 150 puntos
                    // sumar 130 dinero

                    // cambiar a pantallaCancion con otra cancion

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, true));
                } else {

                    // restar 1 vida

                    Cancion c = (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().poll();
                    pantallaJuego.partidaActual.getPreguntasJugadas().add(new PreguntaJugada(c, false));

                }

                // Lanzas jDialogu
                pantallaJuego.cambiarAPantalla("Cancion",
                        (Cancion) pantallaJuego.partidaActual.getPreguntasPorJugar().peek(), null, null);

            }
        });
        botonOpcion4.setFont(new Font("Rockwell", Font.PLAIN, 20));
        GridBagConstraints gbc_botonOpcion4 = new GridBagConstraints();
        gbc_botonOpcion4.insets = new Insets(0, 0, 5, 5);
        gbc_botonOpcion4.gridx = 10;
        gbc_botonOpcion4.gridy = 12;
        add(botonOpcion4, gbc_botonOpcion4);

        String[] pistasCancion = cancionActual.getPistas();

        final JLabel labelPista1 = new JLabel(pistasCancion[0]);
        GridBagConstraints gbc_labelPista1 = new GridBagConstraints();
        gbc_labelPista1.gridwidth = 11;
        gbc_labelPista1.insets = new Insets(0, 0, 5, 5);
        gbc_labelPista1.gridx = 4;
        gbc_labelPista1.gridy = 14;
        add(labelPista1, gbc_labelPista1);
        labelPista1.setVisible(false);

        final JButton btnPista1 = new JButton("Pista 1");
        btnPista1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //Restar dinero
                labelPista1.setVisible(true);

            }
        });
        GridBagConstraints gbc_btnPista1 = new GridBagConstraints();
        gbc_btnPista1.insets = new Insets(0, 0, 5, 5);
        gbc_btnPista1.gridx = 2;
        gbc_btnPista1.gridy = 14;
        add(btnPista1, gbc_btnPista1);

        final JLabel lblTxtPista2 = new JLabel(pistasCancion[1]);
        GridBagConstraints gbc_lblTxtPista2 = new GridBagConstraints();
        gbc_lblTxtPista2.gridwidth = 11;
        gbc_lblTxtPista2.insets = new Insets(0, 0, 5, 5);
        gbc_lblTxtPista2.gridx = 4;
        gbc_lblTxtPista2.gridy = 15;
        add(lblTxtPista2, gbc_lblTxtPista2);
        lblTxtPista2.setVisible(false);

        JButton btnPista2 = new JButton("pista 2");
        btnPista2.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //Restar dinero
                lblTxtPista2.setVisible(true);
            }
        });
        GridBagConstraints gbc_btnPista2 = new GridBagConstraints();
        gbc_btnPista2.insets = new Insets(0, 0, 5, 5);
        gbc_btnPista2.gridx = 2;
        gbc_btnPista2.gridy = 15;
        add(btnPista2, gbc_btnPista2);

        final JLabel lblTxtPista3 = new JLabel(pistasCancion[2]);
        GridBagConstraints gbc_lblTxtPista3 = new GridBagConstraints();
        gbc_lblTxtPista3.gridwidth = 11;
        gbc_lblTxtPista3.insets = new Insets(0, 0, 0, 5);
        gbc_lblTxtPista3.gridx = 4;
        gbc_lblTxtPista3.gridy = 16;
        add(lblTxtPista3, gbc_lblTxtPista3);
        lblTxtPista3.setVisible(false);

        JButton btnPista3 = new JButton("pista 3");
        btnPista3.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //Restar dinero
                lblTxtPista3.setVisible(true);
            }
        });
        GridBagConstraints gbc_btnPista3 = new GridBagConstraints();
        gbc_btnPista3.insets = new Insets(0, 0, 0, 5);
        gbc_btnPista3.gridx = 2;
        gbc_btnPista3.gridy = 16;
        add(btnPista3, gbc_btnPista3);

    }

}

En este caso, quiero crear un modo de juego Cancion (si sale bien, sería simplemente copiar y pegar en otros modos de juego)

JLoyal
  • 1
  • 1
  • 1
    ¿Responde esto a tu pregunta? [¿Cuál es la solución a todos los errores NullPointerException presentes, pasados y futuros?](https://es.stackoverflow.com/questions/42977/cu%c3%a1l-es-la-soluci%c3%b3n-a-todos-los-errores-nullpointerexception-presentes-pasados) – Benito-B Jun 04 '22 at 10:31
  • Procura no resumir los errores en tus preguntas. Así como pusiste el código, puedes poner los errores – Alfabravo Jun 04 '22 at 13:22

0 Answers0