Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JEditorPane或JTextPane中设置HTML样式_Java_Html_Swing_Jeditorpane - Fatal编程技术网

Java 在JEditorPane或JTextPane中设置HTML样式

Java 在JEditorPane或JTextPane中设置HTML样式,java,html,swing,jeditorpane,Java,Html,Swing,Jeditorpane,我希望在JEditorPane或JTextPane中显示HTML,但我希望样式(字体大小)来自外观。有没有办法做到这一点,或者您必须使用嵌入式HTML样式 以下是一个例子: epText = new JEditorPane("text/html", content); StyleSheet ss = ((HTMLEditorKit)epText.getEditorKit()).getStyleSheet(); ss.addRule("p {font-size:" + FontManager.g

我希望在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 API中的以下代码片段:

来自当前LAF的自定义

HTML提供了一组众所周知的特性,而不需要精确地指定 显示特性。秋千 its的主题机制 外观实现。它是 理想的外观和感觉 将显示特性馈送到 HTML视图。视力差的用户 例如,我们需要高对比度 而且比一般字体大

样式表
类提供了对此的支持。这个 HTML的表示可以是 严重受环境的影响 EditorKit上的样式表属性

编辑:设置编辑器工具包时,它将卸载旧工具包并安装新工具包。这会改变底层模型,这就是文本“消失”的原因。


但您可能不需要重新创建整个套件。。。只需在样式中添加一张新图纸。

在设置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