5

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

4

6 回答 6

5

这应该有效,但事实并非如此。 color: green虽然有效。

content.add(new JLabel("<html><p style=\"line-height: 150%;\">hi<br>world</p></html>"));

我猜 line-height 不起作用。如果你使用 CSS,你会这样做,所以也许你不能那样做。 这是我发现的一个很好的工具,您可以使用它来测试您的 HTML 是否可以快速运行。

于 2010-06-24T21:17:24.353 回答
3

查看 HTMLEditorKit 的 setStyleSheet(...) 方法。我以前从未使用过它,但我相信它提供了一些基本支持。

否则,您可以使用 JTextPane 来控制行距。我想你会使用:

StyleConstants.setLineSpacing(...);

然后,您可以更改前景/背景等,使文本窗格看起来像一个标签。

于 2010-06-24T20:10:37.680 回答
3

由于 Java 支持<p>标签和 CSS边距属性,您可以使用下一个解决方案:

new JLabel("<html>first line<p style='margin-top:-5'>second line");

PS 现在不需要关闭 html 标签。

于 2013-04-20T04:11:11.083 回答
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>");
于 2010-06-25T14:26:16.450 回答
0

您可以尝试使用两个标签,并使用 LayoutManager 设置两者之间的距离以及空白。我自己喜欢 GridBoxLayout。

编辑:GridBagLayout。哎呀!

于 2010-06-24T20:10:19.547 回答
-2

设置空边框是否有帮助,例如

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

方法语法BorderFactory.createEmptyBorder(int top, int left, int bottom, int right)

于 2010-06-25T04:36:20.907 回答