Swing/AnchorTextColor のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/AnchorTextColor へ行く。
- category: swing folder: AnchorTextColor title: JLabelで表示するHtmlアンカータグの文字色を変更する tags: [JLabel, Html, JEditorPane, HTMLEditorKit, StyleSheet] author: aterai pubdate: 2015-03-23T00:19:09+09:00 description: JLabelやJEditorPaneで表示されるHtmlアンカータグのデフォルト文字色を変更するテストを行います。 image:
概要
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>
)のデフォルト文字色を変更しています。
- デフォルトの
StyleSheet
(HTMLEditorKit#getStyleSheet()
)は、グローバルなAppContext
で管理されているため、これにa{color:#FF0000;}
などのルールを追加すると、Swing
アプリ全体でアンカータグの文字色が変更されるJLabel
は作成された時点のデフォルトStyleSheet
を使用(一番上のJLabel
はアンカーの文字色は青のまま)するが、JEditorPane
は、現在のStyleSheet
を使用(すべてのJEditorPane
でアンカーの文字色は赤になる)する?- 直接、
<a style='color:#00FF00'
のようにスタイルを指定した場合は、こちらが優先される