2016-07-25 7 views
0

Ich arbeite an einem Quiz für eine Schulaufgabe und ich versuche, eine grafische Benutzeroberfläche mit JFrame zu erstellen. Ich hatte eine Idee, alle Knöpfe unsichtbar zu machen und erst nach dem Klicken auf den Startknopf zu erscheinen. Wenn ich dies jedoch mit dem Befehl .setVisible (false) in der main-Methode versuchte, erhielt ich eine Null-Null-Erkennung. Ich bin mir nicht sicher, was falsch ist und ich hoffe, dass jemand mir ein paar Hinweise geben könnte. Hier ist mein Code:Java: NullPointerException in Jframe beim Ausblenden von Schaltflächen

import javax.swing.JOptionPane; 

public class QuizGUI extends javax.swing.JFrame { 

/** 
* Creates new form QuizGUI 
*/ 
public QuizGUI() { 
    initComponents(); 
} 


/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jButton4 = new javax.swing.JButton(); 
    jPanel1 = new javax.swing.JPanel(); 
    Q1 = new javax.swing.JButton(); 
    jPanel2 = new javax.swing.JPanel(); 
    Q2 = new javax.swing.JButton(); 
    jPanel3 = new javax.swing.JPanel(); 
    Q3 = new javax.swing.JButton(); 
    jPanel4 = new javax.swing.JPanel(); 
    Q4 = new javax.swing.JButton(); 
    jPanel5 = new javax.swing.JPanel(); 
    Q5 = new javax.swing.JButton(); 
    jPanel7 = new javax.swing.JPanel(); 
    Bonus = new javax.swing.JButton(); 
    Exit = new javax.swing.JButton(); 
    jLabel1 = new javax.swing.JLabel(); 
    jLabel2 = new javax.swing.JLabel(); 
    jPanel6 = new javax.swing.JPanel(); 
    Start = new javax.swing.JButton(); 
    EndQuiz = new javax.swing.JButton(); 
    Timer = new javax.swing.JLabel(); 

    jButton4.setText("jButton4"); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    Q1.setText("Question 1"); 
    Q1.addChangeListener(new javax.swing.event.ChangeListener() { 
     public void stateChanged(javax.swing.event.ChangeEvent evt) { 
      Q1StateChanged(evt); 
     } 
    }); 
    Q1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      Q1ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
    jPanel1.setLayout(jPanel1Layout); 
    jPanel1Layout.setHorizontalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() 
      .addGap(33, 33, 33) 
      .addComponent(Q1, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 
    jPanel1Layout.setVerticalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
      .addComponent(Q1, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(11, 11, 11)) 
    ); 

    Q1.getAccessibleContext().setAccessibleName("Question1"); 

    Q2.setText("Question 2"); 
    Q2.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      Q2ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
    jPanel2.setLayout(jPanel2Layout); 
    jPanel2Layout.setHorizontalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() 
      .addContainerGap(35, Short.MAX_VALUE) 
      .addComponent(Q2, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap()) 
    ); 
    jPanel2Layout.setVerticalGroup(
     jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel2Layout.createSequentialGroup() 
      .addGap(13, 13, 13) 
      .addComponent(Q2, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

    Q2.getAccessibleContext().setAccessibleName("Question2"); 

    Q3.setText("Question 3"); 
    Q3.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      Q3ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); 
    jPanel3.setLayout(jPanel3Layout); 
    jPanel3Layout.setHorizontalGroup(
     jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() 
      .addContainerGap(32, Short.MAX_VALUE) 
      .addComponent(Q3, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(9, 9, 9)) 
    ); 
    jPanel3Layout.setVerticalGroup(
     jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel3Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(Q3, javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 

    Q3.getAccessibleContext().setAccessibleName("Question3"); 

    Q4.setText("Question 4"); 
    Q4.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      Q4ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); 
    jPanel4.setLayout(jPanel4Layout); 
    jPanel4Layout.setHorizontalGroup(
     jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() 
      .addContainerGap(38, Short.MAX_VALUE) 
      .addComponent(Q4, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap()) 
    ); 
    jPanel4Layout.setVerticalGroup(
     jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel4Layout.createSequentialGroup() 
      .addGap(13, 13, 13) 
      .addComponent(Q4, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

    Q4.getAccessibleContext().setAccessibleName("Question4\n"); 

    Q5.setText("Question 5"); 
    Q5.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      Q5ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); 
    jPanel5.setLayout(jPanel5Layout); 
    jPanel5Layout.setHorizontalGroup(
     jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel5Layout.createSequentialGroup() 
      .addGap(37, 37, 37) 
      .addComponent(Q5, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(34, Short.MAX_VALUE)) 
    ); 
    jPanel5Layout.setVerticalGroup(
     jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel5Layout.createSequentialGroup() 
      .addGap(13, 13, 13) 
      .addComponent(Q5, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

    Q5.getAccessibleContext().setAccessibleName("Question5"); 

    Bonus.setText("Bonus"); 
    Bonus.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      BonusActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); 
    jPanel7.setLayout(jPanel7Layout); 
    jPanel7Layout.setHorizontalGroup(
     jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel7Layout.createSequentialGroup() 
      .addGap(9, 9, 9) 
      .addComponent(Bonus) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 
    jPanel7Layout.setVerticalGroup(
     jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel7Layout.createSequentialGroup() 
      .addGap(31, 31, 31) 
      .addComponent(Bonus) 
      .addContainerGap(34, Short.MAX_VALUE)) 
    ); 

    Exit.setText("Exit"); 
    Exit.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      ExitActionPerformed(evt); 
     } 
    }); 

    jLabel1.setFont(new java.awt.Font("Vivaldi", 1, 48)); // NOI18N 
    jLabel1.setText("Quiz"); 

    jLabel2.setFont(new java.awt.Font("Tahoma", 0, 35)); // NOI18N 

    Start.setText("Start"); 
    Start.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      StartActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); 
    jPanel6.setLayout(jPanel6Layout); 
    jPanel6Layout.setHorizontalGroup(
     jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel6Layout.createSequentialGroup() 
      .addComponent(Start) 
      .addGap(0, 32, Short.MAX_VALUE)) 
    ); 
    jPanel6Layout.setVerticalGroup(
     jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jPanel6Layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(Start) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

    EndQuiz.setText("End Quiz"); 
    EndQuiz.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      EndQuizActionPerformed(evt); 
     } 
    }); 

    Timer.setText("jLabel3"); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(73, 73, 73) 
      .addComponent(EndQuiz) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 92, Short.MAX_VALUE) 
      .addComponent(Exit, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addContainerGap()) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(layout.createSequentialGroup() 
        .addComponent(jLabel1) 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(jLabel2) 
        .addGap(116, 116, 116)) 
       .addGroup(layout.createSequentialGroup() 
        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
       .addGroup(layout.createSequentialGroup() 
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
         .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addGroup(layout.createSequentialGroup() 
          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
           .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
           .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
          .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) 
        .addGap(0, 0, Short.MAX_VALUE)) 
       .addGroup(layout.createSequentialGroup() 
        .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(Timer) 
        .addGap(71, 71, 71)))) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel1) 
       .addComponent(jLabel2)) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addComponent(EndQuiz) 
        .addGap(56, 56, 56)) 
       .addGroup(layout.createSequentialGroup() 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
         .addGroup(layout.createSequentialGroup() 
          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
          .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
         .addGroup(layout.createSequentialGroup() 
          .addGap(26, 26, 26) 
          .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) 
        .addGap(22, 22, 22) 
        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
         .addGroup(layout.createSequentialGroup() 
          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
          .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
          .addGap(70, 70, 70) 
          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
           .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
           .addComponent(Exit, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)) 
          .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
         .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
          .addComponent(Timer) 
          .addGap(168, 168, 168)))))) 
    ); 

    pack(); 
}// </editor-fold>       

private void Q1StateChanged(javax.swing.event.ChangeEvent evt) {         
    // TODO add your handling code here: 
}        

private void Q1ActionPerformed(java.awt.event.ActionEvent evt) {         
     // TODO add your handling code here: 
    String Q1 = (String) JOptionPane.showInputDialog(//Question 1 
      null, 
      Question.getQuestionMCQ(1), 
      "Q1", 
      JOptionPane.QUESTION_MESSAGE, 
      null, 
      Question.Options(0), 
      Question.Options(0)[1] 
      ); 

    JOptionPane.showMessageDialog(
      null, 
      Question.checkAnswerMCQ (Q1,1));  

    if (Question.getScore()<1) { 
     jLabel2.setText(Integer.toString(Question.getScore())); 
     Q2.setVisible(true); //Q1 
    } 
    else {} 
}         

private void Q2ActionPerformed(java.awt.event.ActionEvent evt) {         
    // TODO add your handling code here: 
    String Q2 = (String) JOptionPane.showInputDialog(//Question 2 
      null, 
      Question.getQuestionMCQ(2), 
      "Q2", 
      JOptionPane.QUESTION_MESSAGE, 
      null, 
      Question.Options(1), 
      Question.Options(1)[1] 
      ); 

    JOptionPane.showMessageDialog(
      null, 
      Question.checkAnswerMCQ (Q2,2)); 

    if (Question.getScore()<2) { 
     jLabel2.setText(Integer.toString(Question.getScore())); 
     Q3.setVisible(true); //Q2 
    } 
    else {} 
}         

private void Q3ActionPerformed(java.awt.event.ActionEvent evt) {         
    // TODO add your handling code here: 
    String Q3 = JOptionPane.showInputDialog(
      null, 
      Question.getQuestionOE(1), 
      "Q3", 
      JOptionPane.QUESTION_MESSAGE); 

    JOptionPane.showMessageDialog(
      null, 
      Question.checkAnswerOE(Q3, 1)); 

    if (Question.getScore() <3) { 
     jLabel2.setText(Integer.toString(Question.getScore())); 
     Q4.setVisible(true); //Q3 
    } 
    else {} 
}         

private void Q4ActionPerformed(java.awt.event.ActionEvent evt) {         
    // TODO add your handling code here: 
    String Q4 = JOptionPane.showInputDialog(
      null, 
      Question.getQuestionOE(2), 
      "Q4", 
      JOptionPane.QUESTION_MESSAGE); 

    JOptionPane.showMessageDialog(
      null, 
      Question.checkAnswerOE(Q4, 2)); 

    if (Question.getScore() < 4) { 
     jLabel2.setText(Integer.toString(Question.getScore())); 
     Q5.setVisible(true); //Q4 
    } 
    else {} 
}         

private void Q5ActionPerformed(java.awt.event.ActionEvent evt) {         
    // TODO add your handling code here: 
    String Q5 = JOptionPane.showInputDialog(
      null, 
      Question.getQuestionOE(3), 
      "Q5", 
      JOptionPane.QUESTION_MESSAGE); 

    JOptionPane.showMessageDialog(
      null, 
      Question.checkAnswerOE(Q5, 3)); 

      if (Question.getScore() < 5) { 
    jLabel2.setText(Integer.toString(Question.getScore())); 
    EndQuiz.setVisible(true); 
      } 
      else if (Question.getScore()==5) { 
     Bonus.setVisible(true); 
    } 
    else {} 
}         

private void BonusActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    BonusButtonPicture s =new BonusButtonPicture(); 
    s.setVisible(true); 
}          

private void ExitActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    System.exit(0); 
}          

private void StartActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
    jLabel2.setText(Integer.toString(Question.restartScore())); 
    Q1.setVisible(true); 
    Start.setVisible(false); 
}          

private void EndQuizActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
     JOptionPane.showMessageDialog(null, "Thanks for taking the quiz! You have acheived a score of " +Question.getScore()); 

     int retry = JOptionPane.showConfirmDialog(null, "Do you want to take the quiz again?"); 

     switch (retry) { 
     case JOptionPane.NO_OPTION: //ends the program 
            JOptionPane.showMessageDialog(null,"End of quiz"); 
            System.exit(0); 
            break; 

     case JOptionPane.YES_OPTION: jLabel2.setText(Integer.toString(Question.restartScore())); //restarts 
                   Question.randomizeQuestionsMCQ(); 
                   Question.randomizeQuestionsOpenEnded(); 
                   Start.setVisible(true); 
            break; 

     case JOptionPane.CLOSED_OPTION: System.exit(0); //closes the program 
    } 
}          

/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    Question.randomizeQuestionsMCQ(); 
    Question.randomizeQuestionsOpenEnded(); 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(QuizGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(QuizGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(QuizGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(QuizGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(() -> { 
     new QuizGUI().setVisible(true); 
    }); 

    Q1.setVisible(false); 
    Q2.setVisible(false); 
    Q3.setVisible(false); 
    Q4.setVisible(false); 
    Q5.setVisible(false); 
    Bonus.setVisible(false); 
    EndQuiz.setVisible(false); 
    } 

// Variables declaration - do not modify      
private static javax.swing.JButton Bonus; 
private static javax.swing.JButton EndQuiz; 
private javax.swing.JButton Exit; 
private static javax.swing.JButton Q1; 
private static javax.swing.JButton Q2; 
private static javax.swing.JButton Q3; 
private static javax.swing.JButton Q4; 
private static javax.swing.JButton Q5; 
private static javax.swing.JButton Start; 
private static javax.swing.JLabel Timer; 
private javax.swing.JButton jButton4; 
private javax.swing.JLabel jLabel1; 
private static javax.swing.JLabel jLabel2; 
private javax.swing.JPanel jPanel1; 
private javax.swing.JPanel jPanel2; 
private javax.swing.JPanel jPanel3; 
private javax.swing.JPanel jPanel4; 
private javax.swing.JPanel jPanel5; 
private javax.swing.JPanel jPanel6; 
private javax.swing.JPanel jPanel7; 
// End of variables declaration     

}

Der Fehler wird im Hauptverfahren

public static void main(String args[]) { 
    //code 

    Q1.setVisible(false); //Error here 
    Q2.setVisible(false); 
    Q3.setVisible(false); 
    Q4.setVisible(false); 
    Q5.setVisible(false); 
    Bonus.setVisible(false); 
    EndQuiz.setVisible(false); 
    } 

Vielen Dank im Voraus!

Antwort

0

Sie initialisieren die Schaltflächen innerhalb der Konstruktor Ihrer Klasse, die nach dem

Q1.setVisible(false); 
Q2.setVisible(false); 
Q3.setVisible(false); 
Q4.setVisible(false); 
Q5.setVisible(false); 
Bonus.setVisible(false); 
EndQuiz.setVisible(false); 

Teil des Codes genannt wird, der die Ausnahme verursacht. Was Sie tun müssen, ist dieses Snippet innerhalb

und es sollte in Ordnung sein.

Verwandte Themen