Ответ 1
Окружать строку с помощью <html></html>
и сломать строки с помощью <br/>
.
JLabel l = new JLabel("<html>Hello World!<br/>blahblahblah</html>", SwingConstants.CENTER);
Как я могу отобразить новую строку в JLabel
?
Например, если бы я хотел:
Привет мир!
blahblahblah
Вот что я имею прямо сейчас:
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);
Вы можете использовать компонент MultilineLabel в Jide Open Source Components.
Вы можете сделать
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
и он автоматически упакует его, если это необходимо.
Спасибо Aakash за рекомендацию MultipleineLabel от JIDE. Недавно JIDE StyledLabel также улучшил поддержку нескольких линий. Я бы порекомендовал его над MultilineLabel, так как он обладает многими другими замечательными функциями. Вы можете проверить статью на StyledLabel ниже. Он по-прежнему является бесплатным и открытым исходным кодом.
Вы можете попробовать:
myLabel.setText("<html>" + myString.replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>") + "</html>")
Преимущества этого:
<br/>
, в обязательном порядке.<
и >
на <
и >
соответственно, предотвращая хаос переноса.Что он делает:
"<html>" +
добавляет открывающий тег html
в начале.replaceAll("<", "<").replaceAll(">", ">")
<
и >
для удобства.replaceAll("\n", "<br/>")
заменяет все символы новой строки тегами br
(HTML break break) за то, что вы хотели.+ "</html>"
закрывает наш тег html
в конце.P.S.: Мне очень жаль просыпаться такой старый пост, но что бы то ни было, у вас есть надежный фрагмент для вашей Java!
JLabel на самом деле способен отображать некоторый элементарный HTML-код, поэтому он не реагирует на использование символа новой строки (в отличие, скажем, System.out).
Если вы разместите соответствующий HTML-код и используете <BR>
, вы получите свои новые строки.