Swing/DisabledHtmlLabel のバックアップ(No.19)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DisabledHtmlLabel へ行く。
- 1 (2007-12-24 (月) 23:18:44)
- 2 (2007-12-25 (火) 02:22:21)
- 3 (2008-01-10 (木) 10:39:43)
- 4 (2008-01-25 (金) 18:10:34)
- 5 (2008-02-07 (木) 19:06:10)
- 6 (2008-04-21 (月) 13:41:14)
- 7 (2009-11-03 (火) 00:03:19)
- 8 (2010-03-19 (金) 23:00:58)
- 9 (2012-06-28 (木) 02:06:17)
- 10 (2013-01-27 (日) 19:54:34)
- 11 (2013-08-24 (土) 22:43:25)
- 12 (2014-11-01 (土) 00:46:09)
- 13 (2014-11-25 (火) 03:03:31)
- 14 (2015-03-13 (金) 13:11:09)
- 15 (2016-05-26 (木) 14:31:35)
- 16 (2017-08-23 (水) 18:34:13)
- 17 (2017-12-07 (木) 11:42:38)
- 18 (2019-09-13 (金) 15:21:27)
- 19 (2021-05-05 (水) 05:10:48)
- 20 (2022-08-20 (土) 22:15:25)
- category: swing folder: DisabledHtmlLabel title: Htmlを使ったJLabelとJEditorPaneの無効化 tags: [Html, JLabel, JEditorPane, UIManager, Fixed] author: aterai pubdate: 2007-12-24T23:18:44+09:00 description: Htmlを使ったJLabelと、JEditorPaneをsetEnabled(false)で無効にします。 image:
概要
Html
を使ったJLabel
と、JEditorPane
をsetEnabled(false)
で無効にします。
Screenshot
Advertisement
サンプルコード
JLabel label2 = new JLabel(HTML_TEXT) {
@Override public void setEnabled(boolean b) {
super.setEnabled(b);
setForeground(b ? UIManager.getColor("Label.foreground")
: UIManager.getColor("Label.disabledForeground"));
}
};
JEditorPane editor1 = new JEditorPane("text/html", HTML_TEXT);
editor1.setOpaque(false);
editor1.setEditable(false);
View in GitHub: Java, Kotlin解説
- JDK-4783068 Components with HTML text should gray out the text when disabled - Java Bug System
JDK 1.7.0-ea-b55
で以下の描画は修正された- このサンプルを実行するとスクリーンショットとは異なり無効化ですべての文字列がグレーになる
- 上段左
- 通常の
JLabel
- 無効化すると文字がへこむ
- 通常の
- 上段中
Html
タグを使ったJLabel
- 無効化しても文字色は変化しない
- 上段右
Html
タグを使ったJLabel
- 無効化するとき
setForeground
で文字色を変更しているが、<font color='red'>
とした文字の色までは変化しない
- 下段左
Html
タグを使ったJLabel
- 無効化するとき
setForeground
で文字色を変更し、さらに文字色をグレースケール化 - このサンプルでは無効化している時にラベルのテキストやサイズを変更しても表示は更新されない
- 下段中
Html
タグを使ったJEditorPane
- 無効化するとすべての文字色が変化
- 下段右
Html
タグを使ったJEditorPane
- 無効化するとすべての文字色が変化
- 以下のようにして
JLabel
と同じフォントを使用するように設定
editor2.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
editor2.setFont(UIManager.getFont("Label.font"));
Html
レンダリングを無効化してタグを文字列として表示する場合は、JLabelなどのHtmlレンダリングを無効化を参考にしてください。
参考リンク
- JDK-4783068 Components with HTML text should gray out the text when disabled - Java Bug System
- Swing - JLabel with html tag can not be disabled or setForegroud?!
- Hyperlinkを、JLabel、JButton、JEditorPaneで表示