如何从TextFile设置JLabel值?

时间:2015-10-17 06:39:51

标签: java swing jlabel

我有一个名为easyscore.txt

的文件

一旦玩家在此程序中输入他的名字,就会在记事本中写入文字。

这是我的代码:

JOptionPane.showMessageDialog(this, "You win the easy difficulty :D", "Congrats", JOptionPane.INFORMATION_MESSAGE, null);
JFrame frame = new JFrame();
String easyname=JOptionPane.showInputDialog(frame, "Enter player name"); 
try {
      FileWriter easyscore = new FileWriter("easyscore.txt");
      PrintWriter peasyscore = new PrintWriter(easyscore); 
      peasyscore.println(easyname);
      peasyscore.close();
}
catch(IOException e) {
    out.println("ERROR!");
}  
MinesweeperXHighscore MinesweeperXHighscore = new MinesweeperXHighscore();
MinesweeperXHighscore.setVisible(true);

另一个java类MinesweeperXHighscore包含标签。

从一开始,标签将为空(无文字),一旦玩家在游戏结束时输入标签,名称将被添加到标签中。

MinesweeperXHighscore Code:

private void Easyscorer() {
    String n1;
    try {
        FileReader feasy = new FileReader("easyscore.txt");
        BufferedReader breasy = new BufferedReader(feasy);
        n1 = breasy.readLine();
        while (n1 != null) {
            INVILABELEASY.setText(n1);
        }
        breasy.close();
    }
    catch(IOException e) {
        out.println("ERROR!");
    }
}

其中INVILABELEASY是我测试过的JLabel

我在测试时输入了用户名,但标签仍为空。

当我检查我的文本文件时,我输入的名称就在那里,问题出在那里  JLabel仍然是空的,并且不能很好地从文本文件中读取。

1 个答案:

答案 0 :(得分:2)

你必须改变这种代码的和平:

while(n1!= null)
       {
        INVILABELEASY.setText(n1);
       }

到:

if(n1!= null)
           {
            INVILABELEASY.setText(n1);
           }

您的代码处于无限循环中,因为n1始终不为空


这是easyscore.txt文件

enter image description here

这是MinesweeperXHighscore java框架

enter image description here