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

有帮助吗?

解决方案

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

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

我猜线高度不起作用。如果您使用CSS,那就是这样做的,所以也许您不能那样做。 这是一个不错的工具 我发现您可以用它来测试您的HTML是否会迅速工作。

其他提示

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

否则,您可以使用JTEXTPANE来控制线间距。我认为您会使用:

StyleConstants.setLineSpacing(...);

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

嗯.. 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>");

由于Java的支持 u003Cp> 标签和CSS 利润 属性您可以使用下一个解决方案:

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

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

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

编辑:GridBaglayout。哎呀!

设置空边框有帮助吗?

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

方法语法 BorderFactory.CreateementBorder(int top,int左,int,int botton,int右下)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top