是否存在MultiLine JLabel?

时间:2011-09-16 16:21:56

标签: java swing jlabel multiline html-formatting

我想在运行时在JLabel中显示一些文本。我只是想知道,无论如何,文本在多行显示,例如我希望我的文本以下列格式显示:

Line 1
Line 2
Line 3

String  sText  = "Line1 \n Line2 \n Line3";
jLabel1.setText (sText);

我尝试了上面的代码,但它没有用。我是不是有些不对劲或者JLabel不支持上述功能?

如果我无法实现上述功能,请指导我如何在运行时在JPanel中添加多个标签(每行一个)

3 个答案:

答案 0 :(得分:13)

JLabel支持HTML。你可以写:

String  sText  = "<html>Line1 <br/> Line2 <br/> Line3</html>";
jLabel1.setText (sText);

编辑: 为了使代码正常工作,我添加了带有br标签的反斜杠

答案 1 :(得分:4)

使用<br>而不是使用\ n 并以<html>为前缀 像这样

"<html>Line1 <br> Line2 <br> Line3</html>";

答案 2 :(得分:3)

在这种情况下,HTML格式文本的更好选择是删除硬换行符(段落末尾除外)并使用CSS设置HTML的宽度。

如第二个示例(LabelRenderTest.java)所示here

JLabel with multiline, formatted, text.