【问题标题】:Is there any MultiLine JLabel option?是否有任何 MultiLine JLabel 选项?
【发布时间】:2011-09-16 16:21:55
【问题描述】:

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

Line 1
Line 2
Line 3

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

我尝试了上面的代码,但它不起作用。是我做错了什么还是 JLabel 不支持上述功能?

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

【问题讨论】:

  • 另一种选择是使用单行 JLabel,但将它们放在 JPanel(容器)中,该 JPanel 使用允许您堆叠 JLabel 的布局,例如 GridLayout 或 BoxLayout。

标签: java html swing jlabel multiline


【解决方案1】:

JLabel 支持 HTML。你可以写:

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

编辑: 我用 br 标签添加了反斜杠以使代码正常工作

【讨论】:

    【解决方案2】:

    使用&lt;br&gt; 而不是使用\n 并在其前面加上&lt;html&gt; 像这样

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

    【讨论】:

    • 请注意,要生效(为了呈现为 HTML),String 需要在 &lt;br&gt; 前加上 &lt;html&gt; 前缀。否则 +1。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 2011-09-01
      • 1970-01-01
      相关资源
      最近更新 更多