java - HTML 不再在 JLabel(和其他组件)中工作

标签 java applet

我有一个我编写的 Java 小程序,并且已经运行了很长时间。在小程序中,我有一堆在其文本内容中使用 HTML 的 JLabel(这是允许的,并且已经工作多年)。我使用 HTML 的主要原因是允许在 JLabel 中换行。

问题:最近,其中包含 HTML(有些没有)的 JLabel 停止显示其文本。我认为这可能与最近的 Java 更新(Java SE 6 更新 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 更新 22 作为我的运行时,并为我的 JDK 提供了匹配的更新。我简单地使用以下代码编译上面的测试小程序:“javac HelloWorldApplet.java”

最佳答案

浪费了一个下午寻找原因,请参阅以下错误报告 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6993691

错误报告中的解决方法是:

import javax.swing.*;
import javax.swing.text.html.parser.ParserDelegator;

public class HelloWorldApplet extends JApplet {
    public void init() {
       ParserDelegator workaround = new ParserDelegator();
       applet.add(new JLabel("Hello Everybody (Text)"), java.awt.BorderLayout.NORTH);
       applet.add(new JLabel("<html>Hello Everybody (HTML)</html>"),  java.awt.BorderLayout.SOUTH);
    }
}

关于java - HTML 不再在 JLabel(和其他组件)中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330602/

相关文章:

java - 无法使用 JAVA DatabaseMetaData 获取外键

java - 如何通过行键从Bigtable中获取所有值?

java - 为什么 Java 小程序可以在 Windows 上运行,但不能在 Mac 10.6.8 上运行?

java - 使用 Java Applet 访问本地客户端数据库

java - 在 Java 小程序中加载图像 AccessControlError

java - StringTokenizer,仅取出 4 个元素中的最后 3 个元素

java - 带 [] 的奇怪方法声明

java - 将字符串转换为 java.net.URI

java - 使用 Java 的 P2P(浏览器到浏览器)

java - 无法正确签署 jar 文件