У меня есть следующий код 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).
Это должно работать, но это не так. цвет: зеленый
работает.
привет, мир content.add (new JLabel ("
Я думаю, что line-height не работает. Вот как вы бы это сделали, если бы вы использовали CSS, так что, возможно, вы не сможете сделать это таким образом. Вот хороший инструмент , который я нашел, вы можете использовать, чтобы проверить, будет ли ваш HTML работать быстро.
Проверьте метод setStyleSheet(...) HTMLEditorKit. Я никогда не использовал его раньше, но я считаю, что он обеспечивает некоторую базовую поддержку.
В противном случае можно использовать JTextPane для управления междустрочным интервалом. Я думаю, что вы будете использовать:
StyleConstants.setLineSpacing(...);
Затем вы можете изменить передний план/ фон и т. Д., Чтобы текстовая панель выглядела как метка.
Вы можете попробовать использовать две метки и установить расстояние между ними, а также пробел с помощью LayoutManager. Мне самому нравится GridBoxLayout.
Изменить: GridBagLayout. Ой!
Помогает ли установка пустой границы, например
label.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
синтаксис метода BorderFactory.createEmptyBorder(int top, int left, int bottom, int right)
Хм... 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>");