JLabel 中的换行符
-
11-09-2019 - |
题
如何在中显示换行符 JLabel
?
例如,如果我想要:
你好世界!
等等等等等等
这就是我现在所拥有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
这是显示的内容:
世界你好!巴拉巴拉巴拉
如果这是一个愚蠢的问题,请原谅我,我只是在学习一些 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
标签在最后。
附:我很抱歉看到这么旧的帖子,但无论如何,您有一个可靠的 Java 代码片段!
可以在祭地开源组件使用MultilineLabel组件。
您可以做
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
和它会自动在适当包裹。
感谢Aakash用于推荐JIDE MultilineLabel。基德的StyledLabel也在最近增强,可以支持多行。我会推荐它在MultilineLabel因为它具有许多其他强大的功能。你可以看看下面StyledLabel的文章。它仍然是自由和开放源码。
JLabel的实际上是能够显示一些基本的HTML的,这就是为什么它不响应您使用换行符(不像,说下,System.out)。
如果你把相应的HTML和使用<BR>
,你会得到你的换行。
不隶属于 StackOverflow