Java 在JEditorPane或JTextPane中设置HTML样式
我希望在JEditorPane或JTextPane中显示HTML,但我希望样式(字体大小)来自外观。有没有办法做到这一点,或者您必须使用嵌入式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
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