JLabelで表示するHtmlアンカータグの文字色を変更する
Total: 5235
, Today: 2
, Yesterday: 7
Posted by aterai at
Last-modified:
概要
JLabel
やJEditorPane
で表示されるHtml
アンカータグのデフォルト文字色を変更するテストを行います。
Screenshot
Advertisement
サンプルコード
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 in GitHub: Java, Kotlin解説
上記のサンプルでは、Customize detault html link color in java swing - Stack Overflowを参考にして、
Html
のアンカータグ(<a href='...'>...</a>
)のデフォルト文字色を変更しています。
HTMLEditorKit#getStyleSheet()
で取得可能なデフォルトのStyleSheet
はグローバルなAppContext
で管理されているため、これにa{color:#FF0000;}
などのルールを追加するとSwing
アプリ全体でアンカータグの文字色が変更されるJLabel
は作成された時点のデフォルトStyleSheet
を使用(一番上のJLabel
はアンカーの文字色は青のまま)するが、JEditorPane
は現在のStyleSheet
を使用(すべてのJEditorPane
でアンカーの文字色は赤になる)する?- 直接
<a style='color:#00FF00'
のようにスタイルを指定した場合は、こちらが優先される