【发布时间】:2013-05-10 15:41:49
【问题描述】:
这似乎是一个愚蠢的问题,但我做不到;我使用扫描仪读取文件,然后使用 while 循环将文本输入到字符串中,然后将其放入 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);
}
}
这是文件中的文字,是游戏规则:
游戏的目的是移动你的棋子,直到它们都在一个相连的组中。对角线被认为是连通的。但是,有一些规则需要遵守:
-白先走 - 每一回合,玩家移动他的一个棋子,在一条直线上,与任何一种颜色的棋子一样多的方格 沿着运动路线的任何地方。 (这些是行动路线)。 - 你可以跳过你自己的作品。 - 你不能跳过你的对手的棋子,但你可以通过降落在他们身上来捕获他们。 - 如果一名玩家因被俘虏而减少为单件,则被俘虏的玩家获胜。 - 如果移动同时为移动的玩家和对手创造了胜利,则移动的玩家获胜。其实有不少 不寻常的残局,至少在理论上是可能的。
感谢任何帮助。
【问题讨论】:
-
由于每个答案都建议使用 HTML,我只提一个 JTextArea 组件,或者对于更多格式选项,一个 JTextPane。
标签: java swing text jlabel multiline