在 JEditorPane 中渲染数学符号的问题

Posted

技术标签:

【中文标题】在 JEditorPane 中渲染数学符号的问题【英文标题】:Issue with Rendering Math symbol in JEditorPane 【发布时间】:2014-08-23 03:31:50 【问题描述】:

我正在尝试在 JEditor 中呈现以下代码,该代码在 chrome 和 Mozile 浏览器中运行良好,但在 EditorPane 中却不行。

<html><body>In the given figure, ABCD is a quadrilateral 
in which BD = 10 cm, AL <SPAN>^</SPAN> BD, 
CM <SPAN style=\"FONT-FAMILY:Symbol\">^</SPAN> 
BD such that AL = 4 cm and CM = 6 cm. 
Find the area of quadrilateral ABCD.<BR>
<IMG align=middle </body></html>

使用 Unicode 替换标签工作正常,但我想使用标签显示它。

【问题讨论】:

正如here 建议的那样,“Swing 组件中对 HTML 的支持仅限于 3.2...” @trashgod :是的,同意。但是 JavaFX 支持 HTML-5,这在 JavaFX 中也不起作用。 【参考方案1】:

此代码可能会解决您的问题。

                // make it read-only
            editorPane.setEditable(false);
            // add an html editor kit
            HTMLEditorKit htmlkit = new HTMLEditorKit();
            HTMLDocument htmlDoc = (HTMLDocument) htmlkit.createDefaultDocument();
            editorPane.setEditorKit(htmlkit);

            String htmlString = "<html><body>In the given figure, ABCD is a quadrilateral in which BD = 10 cm, AL <SPAN>^</SPAN> BD, CM <SPAN style=\\\"FONT-FAMILY:Symbol\\\">^</SPAN> BD such that AL = 4 cm and CM = 6 cm. Find the area of quadrilateral ABCD.<BR><IMG align=middle </body></html>";
            Reader htmlStringReader = new StringReader(htmlString);

            try 
                htmlkit.read(htmlStringReader, htmlDoc, 0);
             catch (IOException e1) 
                // TODO Auto-generated catch block
                System.out.println(e1.getMessage());
                e1.printStackTrace();
             catch (BadLocationException e1) 
                // TODO Auto-generated catch block
                e1.printStackTrace();
            
            editorPane.setEditorKit(htmlkit);
            htmlDoc.putProperty("ZOOM_FACTOR", new Double(0.5));
            editorPane.setDocument(htmlDoc);

最好的问候, 佩德罗·阿扎姆。

【讨论】:

以上是关于在 JEditorPane 中渲染数学符号的问题的主要内容,如果未能解决你的问题,请参考以下文章

将 HTML 转换为图像(通过自动调整大小的 JEditorPane)

数学符号西格玛

在 Swing 应用程序中渲染 html

Java - 在 JEditorPane 中设置选择的字体大小?

jEditorPane 作为网络浏览器

在 Java 中使用 CSS 渲染 HTML