这似乎是一个愚蠢的问题,但我无法做到;我使用扫描仪读取文件,然后使用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);
}
}
这是文件中的文字,它是如何玩游戏的规则:
游戏的目标是移动你的作品,直到它们都在一个连接的组中。对角线被认为是连接的。但是,需要遵循一些规则:
-White先行动 - 每转一圈,移动的玩家移动他的一件作品,一条直线,就像有几块颜色一样多的正方形颜色 沿着运动线的任何地方。 (这些是行动方针)。 - 你可以跳过自己的作品。 - 你可能不会跳过你的对手,但是你可以通过登陆它们来捕获它们。 - 如果一个玩家通过捕获减少到单个玩家,这对于捕获的玩家来说是一个胜利。 - 如果一个移动同时为玩家移动和对手创造了一个胜利,则玩家移动获胜。实际上有不少 不寻常的终结游戏,至少在理论上是可行的。
感谢任何帮助。
答案 0 :(得分:0)
也许试试this:)
看起来很奇怪,但对我来说工作正常。
答案 1 :(得分:0)
您可以使用HTML格式:前缀.setText():
<html>
您将能够在JLabel中使用HTML代码。例如:
label.setText("<html>First line<br>Second line");