TITLE:Htmlを使ったJLabelとJEditorPaneの無効化
Posted by terai at 2007-12-24

Htmlを使ったJLabelとJEditorPaneの無効化

Htmlを使ったJLabelと、JEditorPaneをsetEnabled(false)で無効にします。
  • 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: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTK9vV2SGI/AAAAAAAAAW0/PIlAG2B9yZA/s800/DisabledHtmlLabel.png

概要

Htmlを使ったJLabelと、JEditorPanesetEnabled(false)で無効にします。

#screenshot

サンプルコード

#spanend
#spandel
final JLabel label2 = new JLabel(HTML_TEXT) {
#spanend
  public void setEnabled(boolean b) {
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
JLabel label2 = new JLabel(HTML_TEXT) {
#spanend
  @Override public void setEnabled(boolean b) {
    super.setEnabled(b);
    setForeground(b ? UIManager.getColor("Label.foreground")
                    : UIManager.getColor("Label.disabledForeground"));
  }
};
#spandel
final JEditorPane editor1 = new JEditorPane("text/html", HTML_TEXT);
#spanend
#spanadd
JEditorPane editor1 = new JEditorPane("text/html", HTML_TEXT);
#spanend
editor1.setOpaque(false);
editor1.setEditable(false);

解説

  • 上段左
    • 通常のJLabelです。無効化すると文字がへこみます。

解説

  • 上段中
    • Htmlタグを使ったJLabelです。無効化しても文字色は変化しません。
  • 上段右
    • Htmlタグを使ったJLabelです。無効化するとき、setForegroundで文字色を変更していまが、<font color='red'>とした文字の色までは変化しません。
  • 下段左
    • Htmlタグを使ったJLabelです。無効化するとき、setForegroundで文字色を変更し、さらに文字色をグレースケール化しています。このサンプルでは、無効化している時にラベルのテキストやサイズを変更しても、表示は更新されません。
  • 下段中
    • Htmlタグを使ったJEditorPaneです。無効化すると、すべての文字色が変化します。
  • 下段右
    • Htmlタグを使ったJEditorPaneです。無効化すると、すべての文字色が変化します。以下のようにして、JLabelと同じフォントを使用するように設定しています。
      • -
  • 上段左
    • 通常の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"));
      

参考リンク

参考リンク

コメント

コメント