Новая строка в надписи
Как я могу отобразить строку в JLabel
?
например, если бы я хотел:
Привет, Мир!
не писал, блаблабла
это то, что у меня есть прямо сейчас:
JLabel l = new JLabel("Hello World!nblahblahblah", SwingConstants.CENTER);
это то, что отображается:
Привет, Мир!не писал, блаблабла
Простите меня, если это глупый вопрос, я просто изучаю некоторые основы свинга...
6 ответов:
окружите строку с
<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/>
, без сбоев.- он автоматически заменяет eventual
<
и>
С<
и>
соответственно, предотвращая некоторые сделать хаос.что он делает:
"<html>" +
добавляет открытиеhtml
тег в начале.replaceAll("<", "<").replaceAll(">", ">")
убегает<
и>
для удобства.replaceAll("\n", "<br/>")
заменяет все переводы строк наbr
(HTML разрыв строки) теги для того, что вы хотели- ... и
+ "</html>"
закрывает нашhtml
тег в конце.П. С.: Мне очень жаль, чтобы разбудить такой старый пост, но все, что у вас есть надежный сниппет для вашего Java!
можно сделать
JLabel l = new JLabel("<html><p>Hello World! blah blah blah</p></html>", SwingConstants.CENTER);
и он автоматически обернет его там, где это необходимо.
спасибо Aakash за рекомендацию Jide MultilineLabel. StyledLabel Джида также увеличен недавно для того чтобы поддержать множественную линию. Я бы рекомендовал его над MultilineLabel, поскольку он имеет много других замечательных функций. Вы можете проверить статью на StyledLabel ниже. Он по-прежнему свободен и с открытым исходным кодом.