0

这似乎是一个愚蠢的问题,但我做不到;我使用扫描仪读取文件,然后使用 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);

}

}

这是文件中的文本,它是如何玩游戏的规则:

游戏的目的是移动你的棋子,直到它们都在一个相连的组中。对角线被认为是连通的。但是,有一些规则需要遵守:

- 白色先移动 - 每轮,移动的玩家移动他的一个棋子,在一条直线上,与移动线上任何一种颜色的棋子一样多的方格。(这些是行动路线)。- 你可以跳过你自己的作品。- 你不能跳过你的对手的棋子,但你可以通过降落在他们身上来捕获他们。- 如果一名玩家因被俘虏而减少为单件,则被俘虏的玩家获胜。-如果移动同时为移动的玩家和对手创造了胜利,则移动的玩家获胜。实际上有不少不寻常的残局至少在理论上是可能的。

任何帮助表示赞赏。

4

2 回答 2

0

也许试试这个:)

看起来很奇怪,但对我来说很好用。

于 2013-05-10T15:59:21.607 回答
0

您可以使用 HTML 格式:前缀 .setText() 与:

<html>

并且您将能够在您的 JLabel 中使用 HTML 代码。例子:

label.setText("<html>First line<br>Second line");
于 2013-05-10T16:00:27.803 回答