我正在尝试使用外部CSS样式表来为我在JEditorPane中显示的网页提供默认标记属性。我正在尝试使用Java的StyleSheet类来覆盖我的网页链接到的外部样式表中定义的特定标记属性。我正在使用以下代码:
editorPane = new JEditorPane();
editorPane.setEditable(false);
editorPane.setContentType("text/html");
try
{
editorPane.setPage(new URL("file:///c:/users/ryan/desktop/htmlviewer.htm"));
}
catch (IOException e)
{
e.printStackTrace();
}
HTMLEditorKit editorKit = new HTMLEditorKit();
editorPane.setEditorKit(editorKit);
HTMLDocument document = (HTMLDocument) editorKit.createDefaultDocument();
StyleSheet styleSheet = document.getStyleSheet();
styleSheet.addRule("p { color:#0000ff; }");
editorKit.setStyleSheet(styleSheet);
add(editorPane);
我的外部CSS样式表包含以下行:
p {color:#ff0000; }
当我在Java 6中运行它时,p标签的文本颜色是#0000ff。但是当我在Java 7中运行它时,p标签的文本颜色是#ff0000。
为什么行为改变了?有没有办法让我在Java中定义的CSS属性优先于我的外部CSS样式表中定义的CSS属性?示例代码将不胜感激。