我有一个我编写的java小程序,并且已经运行了很长一段时间。在小程序中,我有一堆在文本内容中使用 HTML 的 JLabel(这是允许的,并且已经工作多年)。我使用 HTML 的主要原因是允许在 JLabels 中换行。
问题:最近,包含 HTML 的 JLabel(有些不包含 HTML)停止显示文本。我认为这可能与最近的 java 更新(Java SE 6 Update 22,于 2010 年 10 月 12 日)有关,不是 100% 确定,但问题似乎确实是从那时开始的。也许引入了一个错误?或功能被删除?
我尝试使用 JEditorPane,当内容是 HTML 时似乎遇到了相同的问题。
另外需要注意的一点是,第一次加载小程序(第一次启动 java 运行时)时它工作正常,但如果刷新网页,则会出现所描述的问题。
有人有类似的问题吗?有人有任何见解吗?或者我只是做了一些愚蠢的事情?
我制作了一个非常简单的测试小程序,我可以以 100% 的规律性重现问题(请记住,运行时第一次加载时它会正常工作,只有连续刷新才会导致问题):
[HelloWorldApplet.java]
import javax.swing.*;
public class HelloWorldApplet extends JApplet
{
public void init()
{
this.add(new JLabel("Hello Everybody (Text)"), java.awt.BorderLayout.NORTH);
this.add(new JLabel("<html><body>Hello Everybody (HTML)</body></html>"), java.awt.BorderLayout.SOUTH);
}
}
[HellowWorldApplet.html]
<html>
<title>A Test</title>
<body>
<applet code="HelloWorldApplet.class" width="320" height="120">
You need Java
</applet>
</body>
</html>
附言。我主要使用 Chrome 进行测试,但我也在 IE 8 中进行了简短的尝试。
另外,我(显然)安装了最新的 Java SE 6 update 22 作为我的运行时,并且有我的 JDK 的匹配更新。我简单地使用以下命令编译上述测试小程序:“javac HelloWorldApplet.java”