1

JEdi​​torPane に表示している 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 スタイルシートで定義したものよりも優先させる方法はありますか? サンプルコードをいただければ幸いです。

4

0 に答える 0