概要

JLabelJEditorPaneで表示されるHtmlアンカータグのデフォルト文字色を変更するテストを行います。

サンプルコード

HTMLEditorKit kit = new HTMLEditorKit();
StyleSheet styleSheet = kit.getStyleSheet();
styleSheet.addRule("a{color:#FF0000;}");
JLabel label2 = new JLabel("<html><a href='" + MYSITE + "'>" + MYSITE + "</a>");

JLabel label3 = new JLabel("<html><a style='color:#00FF00' href='" + MYSITE + "'>" + MYSITE + "</a>");
view all

解説

上記のサンプルでは、Customize detault html link color in java swing - Stack Overflowを参考にして、 Htmlアンカータグのデフォルト文字色を変更しています。

  • デフォルトのStyleSheet(HTMLEditorKit#getStyleSheet())は、グローバルなAppContextで管理されているため、これにa{color:#FF0000;}などのルールを追加すると、Swingアプリ全体でアンカータグの文字色を変更することができる
    • JLabelは作成された時点のデフォルトStyleSheetを使用(一番上のJLabelはアンカーの文字色は青のまま)するが、JEditorPaneは、現在のStyleSheetを使用(すべてのJEditorPaneでアンカーの文字色は赤になる)する?
    • 直接、<a style='color:#00FF00'のようにスタイルを指定した場合は、こちらが優先される

参考リンク

コメント