如何在 中显示换行符JLabel
?
例如,如果我想要:
你好世界!
等等等等等等
这就是我现在所拥有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
这是显示的内容:
你好世界!blahblahblah
如果这是一个愚蠢的问题,请原谅我,我只是在学习一些 Swing 基础知识......
如何在 中显示换行符JLabel
?
例如,如果我想要:
你好世界!
等等等等等等
这就是我现在所拥有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
这是显示的内容:
你好世界!blahblahblah
如果这是一个愚蠢的问题,请原谅我,我只是在学习一些 Swing 基础知识......
用 包围字符串<html></html>
并用 分隔线<br/>
。
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
您可以尝试这样做:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
这样做的好处是:
<br/>
,没有失败。<
和>
用<
和>
,防止一些渲染破坏。它的作用是:
"<html>" +
在开头添加一个开始html
标签.replaceAll("<", "<").replaceAll(">", ">")
逃生<
和>
方便.replaceAll("\n", "<br/>")
将所有换行符替换br
为您想要的(HTML 换行符)标签+ "</html>"
关闭我们的html
标签。PS:我很抱歉唤醒了这么老的帖子,但无论如何,你有一个可靠的 Java 代码片段!
您可以使用积德开源组件中的 MultilineLabel 组件。
你可以做
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
它会在适当的地方自动包装它。
感谢 Aakash 推荐 JIDE MultilineLabel。JIDE 的 StyledLabel 最近也得到了增强,支持多行。我会推荐它而不是 MultilineLabel,因为它还有许多其他很棒的功能。您可以在下面查看有关 StyledLabel 的文章。它仍然是免费和开源的。
JLabel 实际上能够显示一些基本的 HTML,这就是它不响应您使用换行符的原因(与 System.out 不同)。
如果您输入相应的 HTML 并使用<BR>
,您将获得换行符。