“线程中的异常”;AWT-EventQueue-0“事件队列”JAVA

“线程中的异常”;AWT-EventQueue-0“事件队列”JAVA,java,swing,variables,exception,exception-handling,Java,Swing,Variables,Exception,Exception Handling,当我尝试运行此程序时,出现以下错误消息: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Quiz1.<init>(Quiz1.java:21) at Opening_Screen.jButton1ActionPerformed(Opening_Screen.java:138) at Opening_Screen.access$000(Opening_Screen.java:16) at

当我尝试运行此程序时,出现以下错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Quiz1.<init>(Quiz1.java:21)
at Opening_Screen.jButton1ActionPerformed(Opening_Screen.java:138)
at Opening_Screen.access$000(Opening_Screen.java:16)
at Opening_Screen$1.actionPerformed(Opening_Screen.java:57)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)    
线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常 在Quiz1。(Quiz1.java:21) 在打开屏幕时执行jbutton1action(打开屏幕时执行java:138) 在Opening_Screen.access$000(Opening_Screen.java:16) 在Opening_Screen$1.actionPerformed(Opening_Screen.java:57) 在javax.swing.AbstractButton.fireActionPerformed上(AbstractButton.java:2018) 位于javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 在javax.swing.DefaultButtonModel.fireActionPerformed上(DefaultButtonModel.java:402) 在javax.swing.DefaultButtonModel.setPressed中(DefaultButtonModel.java:259) 在javax.swing.plaf.basic.BasicButtonListener.MouseRelease(BasicButtonListener.java:252) 位于java.awt.Component.ProcessMouseeEvent(Component.java:6505) 位于javax.swing.JComponent.ProcessMouseeEvent(JComponent.java:3320) 位于java.awt.Component.processEvent(Component.java:6270) 位于java.awt.Container.processEvent(Container.java:2229) 位于java.awt.Component.dispatchEventImpl(Component.java:4861) 位于java.awt.Container.dispatchEventImpl(Container.java:2287) 位于java.awt.Component.dispatchEvent(Component.java:4687) 位于java.awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4832) 位于java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4492) 位于java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 位于java.awt.Container.dispatchEventImpl(Container.java:2273) 位于java.awt.Window.dispatchEventImpl(Window.java:2719) 位于java.awt.Component.dispatchEvent(Component.java:4687) 位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) 在java.awt.EventQueue.access$200(EventQueue.java:103) 位于java.awt.EventQueue$3.run(EventQueue.java:694) 在java.awt.EventQueue$3.run(EventQueue.java:692) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 在java.awt.EventQueue$4.run(EventQueue.java:708) 在java.awt.EventQueue$4.run(EventQueue.java:706) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.awt.EventQueue.dispatchEvent(EventQueue.java:705) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161) 位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 由于我对Java非常陌生,我完全不知道这意味着什么,如果有人能告诉我在我的代码中发生了什么,我将非常感激

这是代码

public class Quiz1 extends javax.swing.JFrame {

ArrayList <String> quiz1Answers = new ArrayList();
ArrayList <String> quiz1UserAnswers = new ArrayList();

String q1 = this.txtInputQ1.getText();
String q2 = this.txtInputQ2.getText();
String q3 = this.txtInputQ3.getText();
String q4 = this.txtInputQ4.getText();
String q5 = this.txtInputQ5.getText();
String q6 = this.txtInputQ6.getText();
String q7 = this.txtInputQ7.getText();
String q8 = this.txtInputQ8.getText();

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JOptionPane.showMessageDialog(null, "This is a practice quize to test what you have learned.", "Instructions", +  JOptionPane.INFORMATION_MESSAGE);
    JOptionPane.showMessageDialog(null, "<html>To check your answers press the <b><i>'Check'</b></i> button and enter which question to check", "Instructions", +  JOptionPane.INFORMATION_MESSAGE);
    JOptionPane.showMessageDialog(null, "<html>When completed click the <b><i>'Start Quiz'</b></i> button", "Instructions", +  JOptionPane.INFORMATION_MESSAGE);
}                                        

private void txtInputQ6ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here:
}                                          

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    if (q1.equals("") || q2.equals("") || q3.equals("") || q4.equals("") || q5.equals("") || q6.equals("") || q7.equals("") || q8.equals(""))
    {
        JOptionPane.showMessageDialog(null, "Make sure all fields are filled in!", "Error!", +  JOptionPane.ERROR_MESSAGE);
    }
    else
    {
        quiz1UserAnswers.add(q1);
        quiz1UserAnswers.add(q2);
        quiz1UserAnswers.add(q3);
        quiz1UserAnswers.add(q4);
        quiz1UserAnswers.add(q5);
        quiz1UserAnswers.add(q6);
        quiz1UserAnswers.add(q7);
        quiz1UserAnswers.add(q8);
        JOptionPane.showMessageDialog(null, "<html>Press the <b><i>'Check Answer'</b></i> button now!", "", +  JOptionPane.INFORMATION_MESSAGE);
    }
}                                        

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
}                                        

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    Collections.addAll(quiz1Answers, "ottawa", "toronto", "tokyo", "northamerica", "seoul", "Asia", "unitedstates", "50");

}      
public类Quiz1扩展了javax.swing.JFrame{
ArrayList quiz1Answers=新的ArrayList();
ArrayList quiz1UserAnswers=新建ArrayList();
字符串q1=this.txtInputQ1.getText();
字符串q2=this.txtInputQ2.getText();
字符串q3=this.txtInputQ3.getText();
字符串q4=this.txtInputQ4.getText();
字符串q5=this.txtInputQ5.getText();
字符串q6=this.txtInputQ6.getText();
字符串q7=this.txtInputQ7.getText();
字符串q8=this.txtInputQ8.getText();
私有void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
showMessageDialog(null,“这是一个测试您所学内容的练习测验。”、“说明”、+JOptionPane.INFORMATION\u MESSAGE);
showMessageDialog(null,“要检查答案,请按“检查”按钮并输入要检查的问题”、“说明”、+JOptionPane.INFORMATION\u MESSAGE);
JOptionPane.showMessageDialog(空,“完成后单击“开始测验”按钮”、“说明”、+JOptionPane.INFORMATION\u消息);
}                                        
私有void txtInputQ6ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
}                                          
私有void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
如果(q1.equals(“”| | q2.equals(“”| | q3.equals(“”| | q4.equals(“”| | q5.equals(“”| | q6.equals(“”| q7.equals(“”| | q8.equals(“”))
{
showMessageDialog(null,“确保所有字段都已填写!”、“Error!”、+JOptionPane.Error\u消息);
}
其他的
{
quiz1UserAnswers.add(q1);
quiz1UserAnswers.add(q2);
quiz1UserAnswers.add(q3);
quiz1UserAnswers.add(第四季度);
quiz1UserAnswers.add(q5);
quiz1UserAnswers.add(q6);
quiz1UserAnswers.add(q7);
quiz1UserAnswers.add(q8);
JOptionPane.showMessageDialog(null,“立即按“检查答案”按钮!”、“”、+JOptionPane.INFORMATION\u消息);
}
}                                        
私有void jButton3ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
}                                        
私有void jButton4ActionPerformed(java.awt.event.ActionEvent evt){
收藏。addAll(QUIZ1答案,“渥太华”、“多伦多”、“东京”、“北美”、“首尔”、“亚洲”、“美国”、“50”);
}      

提前感谢您!

我可能会假设您正在尝试在初始化对象之前获取值。请确保在调用
.getText()之前先创建对象
txtInputQ1
直到
txtInputQ2
方法。

谷歌搜索空指针Exc