首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML不再在JLabel (和其他组件)中工作

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

Stack Overflow用户
提问于 2010-12-02 00:36:26
回答 2查看 3K关注 0票数 9

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

问题:最近,中包含了HTML的JLabels (有些没有)停止显示文本。我认为这可能与最近的java更新有关(Java 6 update 22,在2010年10月12日),但问题似乎在那时就开始了。也许有个窃听器被引入了?还是移除特征?

我尝试过使用JEditorPane,当内容是HTML时,我似乎也遇到了同样的问题。

还有一点需要注意的是,当您第一次加载applet (第一次启动java运行时)时,它可以正常工作,但是如果刷新网页,那么它就会出现所描述的问题。

有人有类似的问题吗?有人有洞察力吗?还是我只是在做傻事?

我做了一个非常简单的测试小程序,并且我可以100%的规律性地再现问题(记住,第一次加载运行时它会很好,只有连续的刷新才会导致问题):

HelloWorldApplet.java

代码语言:javascript
复制
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

代码语言:javascript
复制
<html>
<title>A Test</title>
<body>
    <applet code="HelloWorldApplet.class" width="320" height="120">
        You need Java
    </applet>
</body>
</html>

PS。我一直在测试使用Chrome,但我做了简短的尝试,在IE8也。另外,我(显然)已经安装了最新的Java 6更新22作为我的运行时,并为我的JDK提供了匹配的更新。我简单地使用"javac HelloWorldApplet.java“编译了上面的测试小程序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-06 15:02:09

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

bug报告中的解决方法是:

代码语言:javascript
复制
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);
    }
}
票数 7
EN

Stack Overflow用户

发布于 2010-12-02 00:46:01

从描述中传来的声音就像一个线程问题。

不幸的是,在AWT事件调度线程(EDT)上没有构造小程序或调用它们的生命周期方法。

从技术上讲,您的构造函数和init代码应该在java.awt.EventQueue.invokeAndWait中执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4330602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档