在 JEditorPane 中设置默认字体

2022-09-03 03:24:34
editorPane.setContentType("text/html");    
editorPane.setFont(new Font("Segoe UI", 0, 14));
editorPane.setText("Hello World");

这不会更改文本的字体。我需要知道如何使用HTML编辑器工具包为JEditorPane设置默认字体。

编辑:

enter image description here


答案 1

试试这个:

JEditorPane pane = new JEditorPane();
pane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
pane.setFont(SOME_FONT);

所有功劳归 de-co-de 博主所有!资料来源:http://de-co-de.blogspot.co.uk/2008/02/setting-font-in-jeditorpane.html

我刚刚测试了它。这使得JEditorPane使用与JLabel相同的字体

JEditorPane pane = new JEditorPane();
pane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
pane.setFont(someOrdinaryLabel.getFont());

完美工作。


答案 2

在渲染HTML时,JEditorPane的字体需要通过其样式表进行更新:

    JEditorPane editorPane = 
            new JEditorPane(new HTMLEditorKit().getContentType(),text);
    editorPane.setText(text);

    Font font = new Font("Segoe UI", Font.PLAIN, 24));
    String bodyRule = "body { font-family: " + font.getFamily() + "; " +
            "font-size: " + font.getSize() + "pt; }";
    ((HTMLDocument)editorPane.getDocument()).getStyleSheet().addRule(bodyRule);

推荐