2016-07-25 7 views
0

私は学校の割り当てのためのクイズに取り組んでおり、JFrameを使用してGUIを作成しようとしています。私はすべてのボタンを非表示にし、開始ボタンをクリックした後にのみ表示するという考えがありました。しかし、私がメインメソッドで.setVisible(false)コマンドを使ってそうしようとすると、それは私にnullpointerexceptionを与えます。私は何が間違っているのか分からず、誰かが私に指針を与えることを望んでいる。ここに私のコードは次のとおりです。Java:ボタンを隠しているときにJframeでNullPointerExceptionが発生する

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     

}

エラーが事前にmainメソッドに

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); 
    } 

感謝を表示されます!

答えて

0

あなたは、例外が発生したコードの

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

一部の後に呼び出されるクラスのコンストラクタ内のボタンを初期化しています。あなたがする必要があるのは、このスニペットを内部に入れることです。

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

これは問題ありません。

関連する問題