Java文件阅读问题

时间:2011-01-31 16:36:24

标签: java

我正在尝试阅读我的highscore.txt文件,以便我可以在我的游戏的高分菜单上显示它。 我的highscore.txt的内容是SCORE和NAME。例如:

   150 John
   100 Charice
   10 May

所以我编写以下代码来读取文本区域中的文件,但无法读取该文件。我的代码如下:

public HighScores(JFrame owner) {
        super(owner, true);
        initComponents();
        setSize(500, 500);
        setLocation(300, 120);
        getContentPane().setBackground(Color.getHSBColor(204, 204, 255));

        File fIn = new File("highscores.txt");
        if (!fIn.exists()) {
            jTextArea1.setText("No high scores recorded!");
        } else {
            ArrayList v = new ArrayList();
            try {
                BufferedReader br = new BufferedReader(new FileReader(fIn));
                String s = br.readLine();
                while (s != null) {
                    s = s.substring(2);
                    v.add(s);
                    s = br.readLine();
                }

                br.close();
            } catch (IOException ioe) {
                JOptionPane.showMessageDialog(null, "Couldn't read high scores file");
            }

            // list to display high scores
            JList jlScores = new JList(v);  //there's a problem here. I don't know why
            jTextArea1.add(jlScores, BorderLayout.CENTER);

        }
    }

我做错了什么???我怎样才能完成这项工作>。你的帮助将受到高度赞赏。提前谢谢。

4 个答案:

答案 0 :(得分:3)

您正在将文件的内容读入ArrayList v,然后在填充之后就无所事事了。

显示分数的代码正在向JList添加空jTextArea1。您可能希望使用JList的内容填充ArrayList v

答案 1 :(得分:1)

您正尝试使用ArrayList对象初始化JList。

JList jlScores = new JList(v);

我认为这可能是问题,因为没有带有ArrayList的JList构造函数,有one with Vector

答案 2 :(得分:1)

JList jlScores = new JList(v);  //there's a problem here. I don't know why

没有一个构造函数接受一个arraylist,看看javadoc中的构造函数。相反,将arraylist转换为数组,然后在构造函数中使用它。

至于如何将arraylist转换为数组,我会把它作为练习,因为这是一个功课,谷歌搜索应该没有问题!

答案 3 :(得分:1)

JList Tutorial中所述,我建议使用ListModel填充JList,如下所示:

//create a model
DefaultListModel listModel = new DefaultListModel();

//now read your file and add each score to the model like this:
listModel.addElement(score);

//after you have read your file, set the model into the JList
JList list = new JList(listModel);