无法显示HTML + SVG

无法显示HTML + SVG,第1张

无法显示HTML + SVG

配置

JEditorPane
为将
JSVGCanvas
画布用于SVG。为此,您需要一个专家
HTMLEditorKit
。这里是
HTLMEditorKit
的Appleteer。

package org.pspre.ui.applet.appleteer;import java.awt.Component;import java.awt.Dimension;// placeholder componentimport javax.swing.JButton;import javax.swing.text.html.HTML;import javax.swing.text.html.HTMLEditorKit;import javax.swing.text.View;import javax.swing.text.ComponentView;import javax.swing.text.PlainView;import javax.swing.text.ViewFactory;import javax.swing.text.Element;import javax.swing.text.AttributeSet;import javax.swing.text.StyleConstants;import org.pspre.ui.applet.appleteer.AppletElement;import org.pspre.ui.applet.appleteer.AppletLoaderContainer;import java.util.HashMap;import java.util.Enumeration;import java.net.URL;import java.util.logging.*;public class AppletEditorKit extends HTMLEditorKit {    URL documentbase;    PseudoBrowser browser;    static int appletCount;    static boolean hasNamedApplet;    public AppletEditorKit(URL documentbase, PseudoBrowser browser) {        this.documentbase = documentbase;        this.browser = browser;        appletCount = 0;        hasNamedApplet = false;    }    public ViewFactory getViewFactory() {        return new AppletHTMLFactory(documentbase, browser);    }    public static class AppletHTMLFactory extends HTMLFactory implements ViewFactory {        URL documentbase;        PseudoBrowser browser;        AppletHTMLFactory(URL documentbase, PseudoBrowser browser) { this.documentbase = documentbase; this.browser = browser;        }        public View create(Element element) { AttributeSet set = element.getAttributes(); Object o =     element.getAttributes().getAttribute(StyleConstants.NameAttribute); if (o instanceof HTML.Tag) {     HTML.Tag kind = (HTML.Tag) o;     Logger.getLogger("Appleteer").log(         Level.FINEST, "AEK.c  HTML.Tag: " + kind);     if (kind == HTML.Tag.APPLET ) {         if(!contains(element.getAttributes().getAttributeNames(),"endtag")) {  View view;  try {      AppletElement ae = new AppletElement(          element,          browser,          "applet" + appletCount++);      view = new AppletView(ae);      if ( ae.getName()!=null ) {          hasNamedApplet = true;      }  } catch(Exception e) {      return new PlainView(element);  }  return view;         } else {  return new PlainView(element);  //return null;         }     } else if (kind == HTML.Tag.PARAM) {         Logger.getLogger("Appleteer").log(  Level.FINEST, "HTML Param: " + kind);     } } return super.create( element );        }    }    public static boolean contains(Enumeration en, String name) {        while( en.hasMoreElements() ) { Object o = en.nextElement(); if (o instanceof HTML.Attribute) {     Logger.getLogger("Appleteer").log(         Level.FINEST, "HTML.Attribute: " + 0);     if (o.toString().equals(name)) {         return true;     } }        }        return false;    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5565656.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存