【问题标题】:Styling HTML in a JEditorPane or JTextPane在 JEditorPane 或 JTextPane 中设置 HTML 样式
【发布时间】:2011-01-30 19:01:01
【问题描述】:

我想在 JEditorPane 或 JTextPane 中显示 HTML,但我希望样式(字体大小)来自外观。有没有办法做到这一点,还是必须使用嵌入式 HTML 样式?

这是一个例子:

epText = new JEditorPane("text/html", content);

StyleSheet ss = ((HTMLEditorKit)epText.getEditorKit()).getStyleSheet();
ss.addRule("p {font-size:" + FontManager.getManager().getFontSize() + "}");
HTMLEditorKit kit = (HTMLEditorKit) epText.getEditorKit();
kit.setStyleSheet(ss);

epText.setEditorKit(kit);

每当我设置编辑器工具包时,所有文本都会消失。我需要每次都设置文本吗?

【问题讨论】:

    标签: java html swing jeditorpane


    【解决方案1】:

    是的。

    HTMLEditorKit 的 Java API 中挖掘这个 sn-p:

    当前 LAF 的自定义

    HTML 提供了一组众所周知的功能,但没有具体说明 显示特性。摇摆有 其主题机制 外观实现。它是 可取的外观和感觉 将显示特性馈入 HTML 视图。视力不佳的用户 例如想要高对比度 并且比典型字体大。

    StyleSheet 类提供了对此的支持。这 HTML的表示可以是 深受设定的影响 EditorKit 上的 StyleSheet 属性。

    编辑:当您设置编辑器套件时,它会卸载旧套件并安装新套件。这改变了底层模型,这就是文本“消失”的原因。 Read the API for more info.

    但您可能不需要重新创建整个套件...只需为您的样式添加一张新表即可。

    【讨论】:

      【解决方案2】:

      在设置 L&F 后从 main 方法调用它。

      public static void setDefaultStyle()
      {
          // looks like WTF but that is the way to set default CSS
          StyleSheet sheet=new HTMLEditorKit().getStyleSheet();
          // add your rules
          sheet.addRule("...");
          sheet.addRule("...");
      }
      

      编辑:至少这应该适用于JTextPane

      【讨论】:

        猜你喜欢
        • 2012-02-26
        • 1970-01-01
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 2012-07-20
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多