如何围绕JLabel进行文本环绕?

时间:2013-05-10 15:41:50

标签: java swing text jlabel multiline

这似乎是一个愚蠢的问题,但我无法做到;我使用扫描仪读取文件,然后使用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先行动    - 每转一圈,移动的玩家移动他的一件作品,一条直线,就像有几块颜色一样多的正方形颜色   沿着运动线的任何地方。 (这些是行动方针)。    - 你可以跳过自己的作品。    - 你可能不会跳过你的对手,但是你可以通过登陆它们来捕获它们。    - 如果一个玩家通过捕获减少到单个玩家,这对于捕获的玩家来说是一个胜利。    - 如果一个移动同时为玩家移动和对手创造了一个胜利,则玩家移动获胜。实际上有不少   不寻常的终结游戏,至少在理论上是可行的。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

也许试试this:)

看起来很奇怪,但对我来说工作正常。

答案 1 :(得分:0)

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

<html>

您将能够在JLabel中使用HTML代码。例如:

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