JLabel的换行符

时间:2009-07-07 02:28:03

标签: java user-interface swing formatting jlabel

如何在JLabel中显示换行符?

例如,如果我想:

  

Hello World!
  blahblahblah

这就是我现在所拥有的:

JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);

这是显示的内容:

  

Hello World!blahblahblah

请原谅我,如果这是一个愚蠢的问题,我只是学习一些Swing基础知识......

6 个答案:

答案 0 :(得分:152)

<html></html>围绕字符串并用<br/>打破这些行。

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);

答案 1 :(得分:8)

您可以尝试这样做:

myLabel.setText("<html>" + myString.replaceAll("<","&lt;").replaceAll(">", "&gt;").replaceAll("\n", "<br/>") + "</html>")

这样做的好处是:

  • 它会<br/>替换所有换行符,但不得失败。
  • 它会自动将<>分别替换为&lt;&gt;,以防止一些渲染造成破坏。

它的作用是:

  • "<html>" +在开头添加了一个开头html标记
  • .replaceAll("<", "&lt;").replaceAll(">", "&gt;")为了方便而逃避<>
  • .replaceAll("\n", "<br/>")替换所有换行符br(HTML换行符)标记,以满足您的需求
  • ... + "</html>"在最后关闭我们的html标记。

P.S。:我很遗憾醒来这么老的帖子,但无论如何,你有一个可靠的Java代码片段!

答案 2 :(得分:2)

您可以在Jide开源组件中使用MultilineLabel组件。

http://www.jidesoft.com/products/oss.htm

答案 3 :(得分:2)

你可以做到

JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);

它会在适当的时候自动换行。

答案 4 :(得分:2)

感谢Aakash推荐JIDE MultilineLabel。 JIDE的StyledLabel最近也得到了增强,以支持多线。我会推荐它通过MultilineLabel,因为它有许多其他很棒的功能。您可以在下面查看有关StyledLabel的文章。它仍然是免费和开源的。

http://www.jidesoft.com/articles/StyledLabel.pdf

答案 5 :(得分:1)

JLabel实际上能够显示一些基本的HTML,这就是为什么它没有响应你对换行符的使用(不像System.out)。

如果您输入相应的HTML并使用<BR>,则会获得换行符。