在actionPerformed(ActionEvent事件)方法中抛出IOException

时间:2015-01-16 19:00:46

标签: java

我正在尝试为我的在线课程创建一个猜谜游戏程序,其中有一堆问题,你可以回答它们,但我已经在我的程序中找到了一些我遇到一些困难的问题。

现在,我要做的是从" actionPerformed(ActionEvent事件)"中读取文件。方法,然后显示用户回答是否正确...

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Scanner;
public class allQuestions implements ActionListener
{
    public void actionPerformed(ActionEvent event) 
    {
        if(event.getActionCommand().equals("Answer M 100"))
        {
            try
            {
                File answersFile = new File("answers_file.txt");
                Scanner sc = new Scanner(answersFile);
                if(sc.hasNext("1000000"))
                {
                    System.out.println("Your answer is correct!");
                }
                else
                {
                    System.out.println("Your answer is wrong.");
                }
            }
            catch(IOException e)
            {
                System.out.println("File cannot load.");
            }
        }
    }


    public static void math100()
    {
        JFrame m100Frame = new JFrame("100 Point Math Question");
        m100Frame.setSize(350,350);
        m100Frame.setLocationRelativeTo(null);
        JPanel pane = new JPanel();
        m100Frame.setContentPane(pane);

        JLabel question = new JLabel("<html><p><div WIDTH = 320><center>Round 1,000,203 to the nearest thousands, and round 8.472 to the nearest hundredth.</p><p>Put answers in box below, and have the word 'and' between the two answers.</center></width></div></html>");

        JTextArea answer = new JTextArea("Enter Answers Here", 10, 25);

        JButton answerQuestion = new JButton("Answer M 100");

        answerQuestion.addActionListener(new allQuestions());

        pane.add(question);
        pane.add(answer);
        pane.add(answerQuestion);

        m100Frame.setVisible(true);
        m100Frame.toFront();
    }
}

现在我不知道我做错了什么,但是我试图做到这一点,当用户在框中输入他们的答案,然后按回车键,它会扫描文件以查看他们的答案是否正确,然后显示是对还是错......

希望这能解释一下。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

找不到您的文件answers_file.txt。添加以下调试代码行,以查看程序实际期望文件的位置。

File answersFile = new File("answers_file.txt"); // existing line
System.out.println(answersFile.getAbsolutePath()); // new debugging line

另请仔细查看代码中文件名的拼写与磁盘上的实际文件名。

请记住反斜杠\是Java中的字符串转义字符,因此如果在文件路径中使用反斜杠,则必须将其转义为:

String path = "C:\\folder\\file.txt";

最后,如果您仍然遇到问题,请将此行调试代码添加到catch块,以便您可以看到确切的错误消息:

        catch(IOException e)
        {
            System.out.println("File cannot load."); // existing line
            e.printStackTrace(); // new debugging line
        }

关于从IOException抛出ActionListener.actionPerformed() - 这是不允许的,因为IOException是已检查的异常,并且未声明在接口方法声明中抛出。< / p>