我有一个小的(500kb)swing applet,它使用JEditorPane在其中显示非常简单/有限的小HTML页面,但是这似乎不能100%流畅地工作,一些客户显示没有空白页面任何java异常。页面在我的机器上正常工作。我需要一种更可靠的方式向所有用户显示HTML页面。

任何想法,如果有一个小+免费类使用而不是JEditorPane 或者有一个简单的方法可以使它更可靠(非空白)

private JEditorPane m_editorPane = new JTextPane();


    m_editorPane.setEditable( false);

    m_editorPane.setBackground(new Color(239  ,255, 215));
    m_editorPane.setBounds(30,42,520,478 );
    m_editorPane.setDoubleBuffered(true);
    m_editorPane.setBorder(null);

    m_editorPane.registerEditorKitForContentType("text/html", "com.xxxxx.SynchronousHTMLEditorKit");


m_editorPane.setPage(ResourceLoader.getURLforDataFile(param.trim())); 
有帮助吗?

解决方案

AFAIK,JEditorPane是一个非常原始的HTML组件:它被CSS搞糊涂,对JS一无所知。
我怀疑你会找到一个“小+免费”的如果做得更好,那么HTML解析和显示并不是一项简单的业务,今天甚至更少。

或许最好让业务中的知名人士来处理这项任务,即。使用Internet Explorer或Mozilla组件(取决于可用的内容等): JDIC:用Java嵌入Web浏览器

其他提示

虽然我之前没有使用它,但 Lobo 是一个开源的网络浏览器Java支持HTML 4,Javascript和CSS 2.

JEditorPane 只支持HTML 3.2,看起来Lobo可能是加载现代网页的更好选择。

我最近POC-ed了几个java HTML渲染解决方案。我们决定使用JEditorPane因为我们真的需要最小化我们的jar的大小并且它内置于Swing中。但是,我遇到的最好的图书馆是 Flying Saucer 。它没有任何js支持,但它的渲染质量和api是一流的,并且它是“免费”的。 (LGLP),100%Java,只有大约1mb(对我们来说仍然太大,但与其他选项相比很小)。但是,它只渲染严格的XHTML(所有属性值都必须引用,所有标签都正确形成),但这可能是好的,具体取决于您的需求(和 HtmlCleaner 或其他一些此类实用程序可能有助于实现这一目标。)

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