Как установить межстрочный интервал / высоту в JLabel в Java Swing?

У меня есть следующий код JLabel:

JLabel someJLabel = new JLabel("first line
second line"); someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));

То, что я хотел бы сделать, – это управлять высотой / интервалом между двумя линиями.

PS: Я также рассматривал использование абзацев вместо ломаных линий, но это то же самое. И я не знаю, можете ли вы сделать это в теге html без использования css (вы не можете использовать css внутри html-кода в JLabel в Java Swing).

Это должно сработать, но это не так. color: green работает.

content.add(new JLabel("

hi
world

"));

Я думаю, что линия-высота не работает. Вот как вы это сделали бы, если бы вы использовали CSS, так что, возможно, вы не сможете этого сделать. Вот хороший инструмент, который я нашел, который вы можете использовать, чтобы проверить, будет ли ваш HTML работать быстро.

Проверьте метод setStyleSheet (…) HTMLEditorKit. Я никогда не использовал его раньше, но я считаю, что он обеспечивает некоторую базовую поддержку.

В противном случае вы можете использовать JTextPane для управления интервалом между линиями. Я думаю, вы бы использовали:

 StyleConstants.setLineSpacing(...); 

Затем вы можете изменить передний план / фон и т. Д., Чтобы текстовая панель выглядела как ярлык.

Хм .. CSS в JLabel, похоже, работает на меня, если придерживаться поддерживаемых свойств. Попробуйте padding (или margin ) и font-size :

 someJLabel = new JLabel("

First line

Second line

");

Из-за того, что Java поддерживает атрибут

и атрибут поля CSS, вы можете использовать следующее решение:

 new JLabel("first line

second line");

PS Теперь не требуется закрывать tags html.

Вы можете попробовать использовать две метки и установить расстояние между ними, а также пробелы, используя LayoutManager. Мне нравится GridBoxLayout, я сам.

Изменить: GridBagLayout. Упс!

Помогает ли установка пустой границы, например

 label.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 

синтаксис метода BorderFactory.createEmptyBorder (int top, int left, int bottom, int right)