2013-05-10 41 views
0

這可能看起來像一個愚蠢的問題,但我無法做到;我使用掃描儀讀取文件,然後使用while循環將文本輸入到字符串中,然後將其輸入到JLabel中。但是,文本顯示在一條很長的水平線上,我如何製作它以便所有文本像原始文本文件中的段落一樣正常顯示? 代碼:如何使文本環繞JLabel?

class howToPlay implements ActionListener{ 

@Override 
public void actionPerformed(ActionEvent e) { 
    JFrame htp = new JFrame(); 
    htp.setSize(300, 100); 
    htp.setLocationRelativeTo(null); 
    Scanner fileStream = null; 
    try { 
     fileStream = new Scanner(new File("text/howtoplay.txt")); 
    } catch (FileNotFoundException e1) { 
     System.out.println("File not found"); 
     e1.printStackTrace(); 
    } 
    String file = ""; 
    while(fileStream.hasNextLine())file += fileStream.nextLine(); 
    JLabel howToPlay = new JLabel(file); 
    htp.add(howToPlay); 
    htp.setVisible(true); 

} 

}

這是文件中的文本,這是怎麼玩一個遊戲規則:

該遊戲的目標是將你的作品直到他們都在一個連接的組中。對角線被認爲是連接的。然而,有一些規則需要遵循:

-White先移動 -每一回合,移動的玩家將其中一個棋子移動到一條直線上,正如許多正方形移動一樣 - 顏色 沿着運動線的任何地方。 (這些是行動線)。 - 你可以跳過你自己的作品。 - 你不可以跳過你的對手,但你可以通過登陸它們來捕捉它們。 - 如果一名玩家被捕獲的數量減少爲一件,那麼這對被捕獲的玩家來說是一場勝利。 - 如果一個移動同時爲移動的玩家和對手創造勝利,移動的玩家將獲勝。實際上有不少不尋常的殘局至少在理論上是可能的。

任何幫助表示讚賞。

+0

由於每個答案都有使用HTML的建議,所以我會提到一個JTextArea組件,或者更多的格式化選項,一個JTextPane。 – 2013-05-10 16:12:21

回答

0

也許嘗試this :)

看起來怪異,但我很好地工作。

0

您可以使用HTML格式:前綴.setText()有:

<html> 

,你就可以在你的JLabel使用HTML代碼。例如:

label.setText("<html>First line<br>Second line");