我正在尝试为我的在线课程创建一个猜谜游戏程序,其中有一堆问题,你可以回答它们,但我已经在我的程序中找到了一些我遇到一些困难的问题。
现在,我要做的是从" 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();
}
}
现在我不知道我做错了什么,但是我试图做到这一点,当用户在框中输入他们的答案,然后按回车键,它会扫描文件以查看他们的答案是否正确,然后显示是对还是错......
希望这能解释一下。谢谢你的帮助。
答案 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>