首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Java中呈现HTML

在Java中呈现HTML
EN

Stack Overflow用户
提问于 2010-04-10 08:59:15
回答 3查看 11.1K关注 0票数 4

我正在尝试为我正在处理的应用程序创建一个帮助面板。帮助文件,因为已经创建使用html技术,我希望它被呈现在一个窗格中,并显示。我看到的所有代码都展示了如何渲染一个站点,例如"http://google.com“。我想从我的pc渲染一个文件,例如"file://c:\tutorial.html“

这是我拥有的代码,但它似乎不起作用。

代码语言:javascript
代码运行次数:0
运行
复制
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import java.awt.Color;
import java.awt.Container;
import java.io.IOException;

import static java.lang.System.err;
import static java.lang.System.out;

    final class TestHTMLRendering
        {
        // ------------------------------ CONSTANTS ------------------------------

        /**
         * height of frame in pixels
         */
        private static final int height = 1000;

        /**
         * width of frame in pixels
         */
        private static final int width = 1000;

        private static final String RELEASE_DATE = "2007-10-04";

        /**
         * title for frame
         */
        private static final String TITLE_STRING = "HTML Rendering";

        /**
         * URL of page we want to display
         */
        private static final String URL = "file://C:\\print.html";

        /**
         * program version
         */
        private static final String VERSION_STRING = "1.0";

        // --------------------------- main() method ---------------------------

        /**
         * Debugging harness for a JFrame
         *
         * @param args command line arguments are ignored.
         */
        @SuppressWarnings( { "UnusedParameters" } )
        public static void main( String args[] )
            {
            // Invoke the run method on the Swing event dispatch thread
            // Sun now recommends you call ALL your GUI methods on the Swing
            // event thread, even the initial setup.
            // Could also use invokeAndWait and catch exceptions
            SwingUtilities.invokeLater( new Runnable()
            {
            /**
             * } fire up a JFrame on the Swing thread
             */
            public void run()
                {
                out.println( "Starting" );
                final JFrame jframe =
                        new JFrame( TITLE_STRING + " " + VERSION_STRING );
                Container contentPane = jframe.getContentPane();
                jframe.setSize( width, height );

                contentPane.setBackground( Color.YELLOW );
                contentPane.setForeground( Color.BLUE );
                jframe.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                try
                    {
                    out.println( "acquiring URL" );
                    JEditorPane jep = new JEditorPane( URL );
                    out.println( "URL acquired" );
                    JScrollPane jsp =
                            new JScrollPane( jep,
                                    JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                    JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
                    contentPane.add( jsp );
                    }
                catch ( IOException e )
                    {
                    err.println( "can't find URL" );
                    contentPane.add( new JLabel( "can't find URL" ) );
                    }
                jframe.validate();
                jframe.setVisible( true );
                // Shows page, with HTML comments erroneously displayed.
                // The links are not clickable.
                }
            } );
            }// end main
        }// end TestHTMLRendering
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-10 09:43:48

您忘记设置JEditorPane的内容类型。

代码语言:javascript
代码运行次数:0
运行
复制
jep.setContentType("text/html");
票数 3
EN

Stack Overflow用户

发布于 2010-04-10 09:06:45

在Swing中呈现HTML是有问题的。Swing组件对超文本标记语言有一些本机支持,但它甚至不是HTML4。它是(有限的!)HTML 3.2。如果您使用不同的桌面库API,您将有更好的选择

适用于Eclipse Standard Widget Tookit

您可能还想看看Flying Saucer,它是:

一个XML/XHTML/CSS 2.1渲染器

(100%JAVA)

票数 3
EN

Stack Overflow用户

发布于 2010-04-10 09:08:33

@cletus说的都是真的。如果你想让你当前的应用程序使用基于文件的URL,尝试设置:

代码语言:javascript
代码运行次数:0
运行
复制
URL = "file:///C://print.html"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2611827

复制
相关文章

相似问题

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