2015-10-17 26 views
1

我有一个文件名为easyscore.txt如何从TextFile中设置JLabel值?

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

这里是我的代码:

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代码:

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

考虑提供这说明您的问题 – MadProgrammer

+0

变量名不应该全部大写字符comilable和可运行的例子。遵循Java约定。 – camickr

回答

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