Новая строка в надписи
Как я могу отобразить строку в 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 ниже. Он по-прежнему свободен и с открытым исходным кодом.