A ultima pergunta abre novamente!

9 respostas
Suellen_Susu

Oii pessoal, td bm?
é o seguinte: estou fazendo meu tcc em java, um jogo tipo quiz, e esta me ocorrendo o seguinte erro:
qndo o usuário escolhe um nível e responde todas as questões. Na ultima pergunta, após respondela, é exibida uma caixa de afirmação indicando fim de jogo, onde automaticamente abre-se o JFrame de recordes. Porém, ao abrir o JFrame de recordes, ñ poderia exibir novamente a ultima pergunta, pois o jogo ja acabou, e é isso q esta acontecendo!!!
segue abaixo o código do JFrame de pergunta, pois suponho q o erro esteja ai, mais exatamente no primeiro código, q é o de conexão com o banco, ou no segundo, q é o botão responder!

Conexão do banco:
@SuppressWarnings("unchecked")
    public void atualizaCampo(){
    if(BD.getConnection())
               {
               
                try
                {                  
                     String query = "Select * from medio where id = '" +pontos.id+"'";
                     BD.setResultSet(query);
                     while (BD.resultSet.next())
                     {
                         pergunta=(BD.resultSet.getString("pergunta"));
                         alt1=(BD.resultSet.getString("alt1"));
                         alt2=(BD.resultSet.getString("alt2"));
                         alt3=(BD.resultSet.getString("alt3"));
                         alt4=(BD.resultSet.getString("alt4"));
                         resposta=(BD.resultSet.getString("resposta"));
                         cont=(BD.resultSet.getInt("id"));
                     }
                     if (cont!=pontos.id){
                         new fimsom();
                        JOptionPane.showMessageDialog(null, "Fim de Jogo!","As perguntas terminaram:",JOptionPane.WARNING_MESSAGE);                                                                      
                         this.dispose();
                         new recordes().setVisible(true);                        
                     }
                }
                catch(java.lang.Exception ex)
                {
                    ex.printStackTrace();
                }
               }
}
e o segundo, o botao:
new playerIII(); 
        if(jRadioButton1.isSelected()){
            if (jRadioButton1.getText().equals(resposta)) {
                pontos.ponto=pontos.ponto+1;
                new certosom();
                JOptionPane.showMessageDialog(null, "Resposta Correta!","Alternativa:",JOptionPane.INFORMATION_MESSAGE);
    }else{
         new errosom();       
         JOptionPane.showMessageDialog(null, "Resposta Errada!","Alternativa:",JOptionPane.ERROR_MESSAGE);
            }
            
        }
        
        if(jRadioButton2.isSelected()){
            if (jRadioButton2.getText().equals(resposta)) {
                pontos.ponto=pontos.ponto+1;
                new certosom();
                JOptionPane.showMessageDialog(null, "Resposta Correta!","Alternativa:",JOptionPane.INFORMATION_MESSAGE);
    }else{
         new errosom();       
         JOptionPane.showMessageDialog(null, "Resposta Errada!","Alternativa:",JOptionPane.ERROR_MESSAGE);
            }
            
        }
        
        if(jRadioButton3.isSelected()){
            if (jRadioButton3.getText().equals(resposta)) {
                pontos.ponto=pontos.ponto+1;
                new certosom();
                JOptionPane.showMessageDialog(null, "Resposta Correta!","Alternativa:",JOptionPane.INFORMATION_MESSAGE);
        }else{
         new errosom();       
         JOptionPane.showMessageDialog(null, "Resposta Errada!","Alternativa:",JOptionPane.ERROR_MESSAGE);
            }
            
        }
        
        if(jRadioButton4.isSelected()){
            if (jRadioButton4.getText().equals(resposta)) {
                pontos.ponto=pontos.ponto+1;
                new certosom();
                JOptionPane.showMessageDialog(null, "Resposta Correta!","Alternativa:",JOptionPane.INFORMATION_MESSAGE);
    }else{
         new errosom();       
         JOptionPane.showMessageDialog(null, "Resposta Errada!","Alternativa:",JOptionPane.ERROR_MESSAGE);
            }
            
        }
        pontos.id++;
        new PergMedio().setVisible(true);
        this.dispose();
    }

me ajudem pessoal, por favor!!!!
tcc pra entregar esse mes de junho ai!!!!
bjosss e Obrigada!!!!!!!!!!!

9 Respostas

TheKill
if(jRadioButton1.isSelected()){  
             if (jRadioButton1.getText().equals(resposta)) {  
                 pontos.ponto=pontos.ponto+1;  
                 new certosom();  
                 JOptionPane.showMessageDialog(null, "Resposta Correta!","Alternativa:",JOptionPane.INFORMATION_MESSAGE);  
     }else{  
          new errosom();         
          JOptionPane.showMessageDialog(null, "Resposta Errada!","Alternativa:",JOptionPane.ERROR_MESSAGE);  
             }  
               
         }

resposta é um booleano? retorna do banco True/False?
analise o seguinte:

if (jRadioButton1.getText().equals(resposta))

Isso vai ser verdadeiro alguma vez?

ViniGodoy

Antes de abrir o frame você deveria fazer seuComponenteDaPergunta.setVisible(false);
Isso deixará a pergunta invisível.

Suellen_Susu

ViniGodoy:
Antes de abrir o frame você deveria fazer seuComponenteDaPergunta.setVisible(false);
Isso deixará a pergunta invisível.

como assim seuComponenteDaPergunta? detalhe mais (desculpa pedir isso, pois sou novata na linguagem)

Allan_Barcelos

seria algo como

seuFrame.setVisible(false) // a janela ficaria "invisivel"
seuFrame.dispose()  // fecha a janela

Não sei se era isso :oops: , não sei muito sobre isso.

Suellen_Susu

Allan Barcelos:
seria algo como

seuFrame.setVisible(false) // a janela ficaria "invisivel"
seuFrame.dispose()  // fecha a janela

Não sei se era isso :oops: , não sei muito sobre isso.

Ahh, sei, mas eu ja tentei isso, e não da certo…

Creio q o problema esta relacionado a isso tmb, mas deve estar principalmente ligado a variavel ‘id’…

só ñ sei como solucionar o problema…

Allan_Barcelos

Acho que nessa parte do código tu poderia tentar algo do tipo:

if (cont!=pontos.id){   
                         new fimsom();   
                        JOptionPane.showMessageDialog(null, "Fim de Jogo!","As perguntas terminaram:",JOptionPane.WARNING_MESSAGE);      
                         this.setVisible(false);                                                                
                         this.dispose();   
                         new recordes().setVisible(true);                           
                     }   
                }

e na linha 49:

pontos.id++;
        this.setVisible(false);
        new PergMedio().setVisible(true);   
        this.dispose();   
    }

Não entendo muito de BD, mais sei lá talvez tu possa usar o if em conjunto com while

while (BD.resultSet.next() && (cont==pontos.id))
Suellen_Susu

então, referente a linha q vc me mandou this.setVisible(false);, tenho certeza q esta função se usada do modo certo vai funcionar, pois a linha q precisava saber era esta…
mas ñ desta forma q esta no código, pq montei a estrutura q vc me mandou e deu errado…

se alguem mais puder me auxiliar, agradeço desde ja… e obrigada Allan

Allan_Barcelos

Era só um exemplo :oops: , mais olha tu poderia então fazer com uma variavel count

int count = 0; // declara a variavel no inicio, antes do método, etc.. para não iniciar semrpe com 0.
if(count == 0){
  exibePergunta();
  count++;
}
else{
  this.setVisible(false);
  this.dispose();
}

é meio ridiculo mais deve funcionar… :wink:

Suellen_Susu

Allan Barcelos:
Era só um exemplo :oops: , mais olha tu poderia então fazer com uma variavel count

int count = 0; // declara a variavel no inicio, antes do método, etc.. para não iniciar semrpe com 0.
if(count == 0){
  exibePergunta();
  count++;
}
else{
  this.setVisible(false);
  this.dispose();
}

é meio ridiculo mais deve funcionar… :wink:

Blz, eu entendi, só ñ entendi aonde q é pra por esse código, em q lugar…

Criado 28 de maio de 2010
Ultima resposta 4 de jun. de 2010
Respostas 9
Participantes 4