JLabel中的HTML未显示

时间:2011-02-25 15:35:50

标签: java html swing jlabel

JLabel label = new JLabel("<html><body>Hello world</body></html>");

什么都没有。

如果我删除标签,它会显示纯文本(如预期的那样),因此JLabel肯定会被添加并显示在窗口上。

同样的:

JEditorPane jep = new JEditorPane("text/html", "<html><body>Hello world</body></html>");

有什么想法吗?

我在Eclipse中使用java-6-openjdk。更多细节:

matt@matt-laptop:~$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~10.04.1)
OpenJDK Server VM (build 19.0-b09, mixed mode)

matt@matt-laptop:~$ javac -version
javac 1.6.0_24

2 个答案:

答案 0 :(得分:5)

  

如果要混合字体或颜色   在文本中,或者如果你想   格式化如多行,你   可以使用HTML。 HTML格式可以   用于所有Swing按钮,菜单项,   标签,工具提示和标签窗格,   以及树木等组件   以及使用标签进行渲染的表格   文本。

请参阅此示例HtmlDemo.java


在你的例子中

 JLabel label = new JLabel("<html><body>Hello world</body></html>"); 

您没有应用任何格式化<b>bold</b><i>italic</i>等等。

也不需要<body></body>

希望它有所帮助。

答案 1 :(得分:1)

我使用最新的Windows JDK在Eclipse中测试了您的JLabelJEditorPane代码,使用了几种不同的外观,但它们都运行得很好。我知道你正在使用OpenJDK,但我无法掌握Windows的版本。我猜这两种实现有所不同。

我建议将文字包装在段落中,例如"<html><body><p>Hello world</p></body></html>"