我有以下JLabel代码:
JLabel someJLabel = new JLabel("<html>first line<br>second line</html>");
someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));
我想要做的是能够控制两条线之间的线高/间距。
PS:我也看过使用段落而不是分隔线,但这是一回事。而且我不知道你是否可以在不使用css的情况下在html标签中做到这一点(你不能在Java Swing的JLabel中的html代码中使用css)。
答案 0 :(得分:5)
这应该有效,但事实并非如此。 color: green
虽然有效。
content.add(new JLabel("<html><p style=\"line-height: 150%;\">hi<br>world</p></html>"));
我猜行高不起作用。如果你要使用CSS,那就是你要这样做的,所以也许你不能这样做。 Here's a nice tool我发现您可以使用哪些来测试您的HTML是否能够快速运行。
答案 1 :(得分:3)
查看HTMLEditorKit的setStyleSheet(...)方法。我之前从未使用它,但我相信它提供了一些基本的支持。
否则,您可以使用JTextPane来控制行间距。我想你会用:
StyleConstants.setLineSpacing(...);
然后,您可以更改前景/背景等,使文本窗格看起来像标签。
答案 2 :(得分:2)
嗯.. JLabel中的CSS似乎对我有用,如果一个人坚持支持的属性。试试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>");
答案 3 :(得分:2)
由于Java支持&lt; p&gt; 标记和CSS margin 属性,因此您可以使用下一个解决方案:
new JLabel("<html>first line<p style='margin-top:-5'>second line");
P.S。现在不需要关闭html标签。
答案 4 :(得分:0)
您可以尝试使用两个标签,并使用LayoutManager设置两者之间的距离以及空白。我喜欢GridBoxLayout,我自己。
编辑:GridBagLayout。糟糕!
答案 5 :(得分:-2)
设置空白边框有帮助,例如
label.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
方法语法 BorderFactory.createEmptyBorder(int top,int left,int bottom,int right)