Новая строка в JLabel

Как я могу отобразить новую строку вJLabel?

Например, если бы я хотел:

Hello World!
blahblahblah

Это то, что я имею сейчас:

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

Это то, что отображается:

Hello World!blahblahblah

Простите, если это глупый вопрос, я просто изучаю некоторые основы Swing ...

 Simon Baars16 мар. 2017 г., 08:51
Определенно не тупой вопрос. Мне потребовалось некоторое время, чтобы понять, что html также возможен в разгаре.

Ответы на вопрос(6)

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

Преимущества этого:

It replaces all newlines with <br/>, without fail. It automatically replaces eventual < and > with &lt; and &gt; respectively, preventing some render havoc.

Что это делает:

"<html>" + adds an opening html tag at the beginning .replaceAll("<", "&lt;").replaceAll(">", "&gt;") escapes < and > for convenience .replaceAll("\n", "<br/>") replaces all newlines by br (HTML line break) tags for what you wanted ... and + "</html>" closes our html tag at the end.

П.С .: Мне очень жаль разбудить такой старый пост, но у вас есть надежный фрагмент для вашей Java!

поэтому он не отвечает на использование вами символа новой строки (в отличие, скажем, от System.out,).

Если вы вставили соответствующий HTML и использовали<BR>Вы бы получили ваши новые строки.

 13 мая 2013 г., 06:50
@ b1naryatr0phy na, проблема была исправлена :) Оригинальный пост был буквальным<br> тег, который был отформатирован переполнением стека как буквальный разрыв строки в посте.
 16 апр. 2011 г., 02:13
sigh Я пытался добавить обратные метки, чтобы скрыть ваш HTML, однако там говорится, что я не могу редактировать, если я не добавляю как минимум 6 символов.
 11 мая 2013 г., 19:03
@Annan Это не нужно в HTML. Вы говорите о поддержке XHTML.stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br

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

и он автоматически обернет его, где это необходимо.

Решение Вопроса

<html></html> и разорвать линии с<br/>.

JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
 27 апр. 2012 г., 05:50
@NitinBansal На самом деле в новой версии HTML рекомендуется оставлять его как & lt; br & gt ;. Он называется пустым тегом. & lt; br / & gt; все еще работает для обратной совместимости.
 11 окт. 2015 г., 19:35
На самом деле вам даже не нужно закрывать тег html. Если вам нужно добавить текст во время выполнения, это сильно упрощает!
 17 июн. 2013 г., 23:11
WTF !!!! Я могу использовать HTML в Java, как это! Хорошо, теперь я в замешательстве, спасибо!
 02 июл. 2013 г., 02:33
Есть идеи ПОЧЕМУ JLabel по умолчанию не поддерживает переводы строк?
 18 апр. 2012 г., 07:50
Небольшое исправление: используйте & lt; br / & gt; вместо того, чтобы просто & lt; br & gt; ... это рекомендуемый способ сделать это (чтобы не пропустить закрывающие теги) ... счастливое кодирование ...

E также недавно улучшен для поддержки нескольких строк. Я бы порекомендовал его по MultilineLabel, поскольку он имеет много других замечательных функций. Вы можете проверить статью о StyledLabel ниже. Это все еще бесплатно и с открытым исходным кодом.

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

Ваш ответ на вопрос