-1

O objetivo do código é passar um arraylist de Sessao para os construtores sala2D e 3D(no construtor, o nome do arraylistde Sessao é "session"). Porém após alguns testes fica constatado que os construtores recebem um arraylist nulo. Como resolver este problema?.

  private void cadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try{
        int check=0;
        int valid=0;
        Sessao sessao;
        ArrayList<Sessao> session= new ArrayList();
        if(quatorze.isSelected()){
           sessao= new Sessao("14h",Integer.parseInt(capacidade.getText()));
           session.add(sessao);
        }
        if(dezesseis.isSelected()){
            sessao=new Sessao("16h",Integer.parseInt(capacidade.getText()));
            session.add(sessao);
        }

        if(dezoito.isSelected()){
           sessao=new Sessao("18h",Integer.parseInt(capacidade.getText()));
           session.add(sessao);
        }
        if(salaBox.getSelectedIndex()==0){
            Sala novaSala2D= new Sala2D(Integer.parseInt(numero.getText()),Integer.parseInt(capacidade.getText()),session,filmes.getSelectedItem().toString());
            Cinema.salas.add(novaSala2D);
            check=0;
        }

        else if(salaBox.getSelectedIndex()==1){
            Sala novaSala3D= new Sala3D(Integer.parseInt(numero.getText()),Integer.parseInt(capacidade.getText()),novo,filmes.getSelectedItem().toString());
            Cinema.salas.add(novaSala3D);
            check=1;
            /*for (Sessao sessoe : novaSala3D.getSessoes()) {
            System.out.println(novaSala3D.getSessoes().);
            }*/
        }

        if(check==0){
            JOptionPane.showMessageDialog(null,"Sala 2D Cadastrada com sucesso!");
            clear();
        }
        else{
            JOptionPane.showMessageDialog(null,"Sala 3D Cadastrada com sucesso!");
            clear();
        }

    }
    catch(NumberFormatException exception){
          JOptionPane.showMessageDialog(null, "Por favor, cadastre um filme na tela anterior no registro de filmes antes de vir aqui!");
      } 
    catch(NullPointerException exception){//Se o usuário não insere um valor numérico, uma excessão é gerada.
        JOptionPane.showMessageDialog(null,"Por favor, insira um valor numérico inteiro nos campos de texto!");
     } 


    }
1
  • Na inicialização da variável novaSala3D você está a utilizar a variável novo que não se encontra em local nenhum do seu código. Será por isso? Commented 2/06/2019 às 7:53

1 Resposta 1

0

Tente substituir seu:

ArrayList<Sessao> session= new ArrayList();

por:

List<Sessao> session= new ArrayList<>();

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .