2015-10-17 28 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