如何在JLabel
中顯示換行符?JLabel中的換行
例如,如果我想:
的Hello World!
blahblahblah
這就是我現在所擁有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
這是顯示的內容:
的Hello World blahblahblah
如果原諒我是一個愚蠢的問題,我只是在學習一些Swing基礎知識......
如何在JLabel
中顯示換行符?JLabel中的換行
例如,如果我想:
的Hello World!
blahblahblah
這就是我現在所擁有的:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
這是顯示的內容:
的Hello World blahblahblah
如果原諒我是一個愚蠢的問題,我只是在學習一些Swing基礎知識......
圍繞字符串<html></html>
並打破<br/>
。
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
只是一個小小的更正:使用
而不是僅僅
...這是做這件事的推薦方式(不要錯過任何結束標籤)...開心編碼... –
2012-04-18 05:50:00
@NitinBansal其實它推薦在新版本的HTML將其保留爲
。它被稱爲無效標籤。
仍然適用於向後兼容性。 –
gsingh2011
2012-04-27 03:50:23
的JLabel實際上是能夠顯示一些基本的HTML,這就是爲什麼它不響應您使用換行符(不像,說下,System.out)的。
如果你把相應的HTML和使用<BR>
,你會得到你的換行符。
您可以使用Jide開源組件中的MultilineLabel組件。
你可以做
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
,並在適當情況下它會自動將它包裝。
感謝Aakash推薦JIDE MultilineLabel。 JIDE的StyledLabel最近也被增強以支持多行。我會推薦它通過MultilineLabel,因爲它有許多其他的強大功能。您可以在下面查看StyledLabel上的文章。它仍然是免費且開源的。
你可以嘗試這樣做:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
這樣做的優點是:
<br/>
,沒有失敗。<
和>
分別與<
和>
,防止一些渲染破壞。它所做的是:
"<html>" +
之初.replaceAll("<", "<").replaceAll(">", ">")
逃脫爲了方便<
和>
.replaceAll("\n", "<br/>")
由br
(HTML換行)將替換所有換行符增加了開口html
標籤標籤爲你想要什麼+ "</html>"
最後關閉我們的html
標籤。P.S .:非常抱歉喚醒這樣一箇舊帖子,但無論如何,您的Java有一個可靠的片段!
絕對不是一個愚蠢的問題。花了我一段時間來弄清楚html也是可能的。 – 2017-03-16 07:51:20