JEditorPane に表示している Web ページにデフォルトのタグ プロパティを設定するために、外部 CSS スタイル シートを使用しようとしています。Java の StyleSheet クラスを使用して、Web ページがリンクしている外部スタイル シートで定義されている特定のタグ プロパティをオーバーライドしようとしています。私は次のコードを使用しています:
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 スタイルシートで定義したものよりも優先させる方法はありますか? サンプルコードをいただければ幸いです。