Estou desenvolvendo um sistema que cadastra Filmes, salas, dentre outras coisas, de um cinema. A parte dos filmes está feita, mas a de salas que inclui um arraylist de sessões não funciona. A classe Sala tem um numero, uma capacidade, um tipo de sala(3d ou 2d), um filme, e pode ter até 3 sessões(cada uma delas tem uma quantidade de ingressos baseada na quantidade de cadeiras da sala, e um horario). Baseado nisso, o que eu pretendo fazer é ler essas sessões dentro de uma determinada posição do arraylist de salas, procurando pelo nome do horario nela, e caso ache os horarios que eu quero, checkboxes correspondentes aos horários serão marcadas num JFrame. A questão é, por mais que eu tente, as checkboxes nunca ficam ticadas. Segue o código:
private void buscaActionPerformed(java.awt.event.ActionEvent evt) {
for(int i=0;i<Cinema.salas.size();i++)
if(Cinema.salas.get(i).getId()==Integer.parseInt(numero.getText())){
if(Cinema.salas.get(i) instanceof Sala2D){
salaBox.setSelectedIndex(0);
}
else if(Cinema.salas.get(i) instanceof Sala3D){
salaBox.setSelectedIndex(1);
}
numero.setText(Integer.toString(Cinema.salas.get(i).getId()));
capacidade.setText(Integer.toString(Cinema.salas.get(i).getCapacidade()));
filmes.setSelectedItem(Cinema.salas.get(i).getFilme());
for(int j=0;j<Cinema.salas.get(i).getSessoes().size();j++){
JOptionPane.showMessageDialog(null,"Passei do for");
if(Cinema.salas.get(i).getSessoes().get(j).getHorario().contains("14h")){
quatorze.setSelected(true);
}
JOptionPane.showMessageDialog(null,"Passei do primeiro if");
if(Cinema.salas.get(i).getSessoes().get(j).getHorario().equals("16h")){
dezesseis.setSelected(true);
}
if(Cinema.salas.get(i).getSessoes().get(j).getHorario().equals("18h")){
dezoito.setSelected(true);
}
}
break;
}
}
Caso seja necessário, o código do botão cadastrar(que funciona normalmente):
private void cadastrarActionPerformed(java.awt.event.ActionEvent evt) {
// Sessao[] sessoes=new Sessao[4];
ArrayList<Sessao> session= new ArrayList();
int check=0;
try{
if(quatorze.isSelected()){
Sessao sessao14= new Sessao("14h",Integer.parseInt(capacidade.getText()));
session.add(sessao14);
}
if(dezesseis.isSelected()){
Sessao sessao16=new Sessao("16h",Integer.parseInt(capacidade.getText()));
session.add(sessao16);
}
if(dezoito.isSelected()){
Sessao sessao18=new Sessao("18h",Integer.parseInt(capacidade.getText()));
session.add(sessao18);
}
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()),session,filmes.getSelectedItem().toString());
Cinema.salas.add(novaSala3D);
check=1;
}
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){//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!");
}
catch(NullPointerException exception){// Se o usuário não insere um filme,nada é passado do comboBox pro construtor
JOptionPane.showMessageDialog(null, "Por favor, cadastre um filme na tela anterior no registro de filmes antes de vir aqui!");
}
//JOptionPane.showMessageDialog(null, session.get(0).getHorario()+session.get(1).getHorario()+session.get(2).getHorario());
}
Eu tenho quase 100% de certeza que o problema está no for interno, mas não sei o que está errado.