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

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

JLabel someJLabel = new JLabel("<html>first line<br>second line</html>");
someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));

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

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

5
задан Stephane Grenier 24 June 2010 в 19:49
поделиться

5 ответов

Это должно работать, но это не так. цвет: зеленый работает.

content.add (new JLabel ("

привет, мир

"));

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

5
ответ дан 13 December 2019 в 22:01
поделиться

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

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

StyleConstants.setLineSpacing(...);

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

3
ответ дан 13 December 2019 в 22:01
поделиться

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

Изменить: GridBagLayout. Ой!

0
ответ дан 13 December 2019 в 22:01
поделиться

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

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

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

-2
ответ дан 13 December 2019 в 22:01
поделиться

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

someJLabel = new JLabel("<html><body><p style=\"padding:10; font-size:30\">First line</p><p style=\"padding:10; font-size:20\">Second line</p></body></html>");
2
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: