如何在Java Swing中设置JLabel中的行间距/高度?

时间:2010-06-24 19:49:40

标签: java html swing jlabel fonts

我有以下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)。

6 个答案:

答案 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)