• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTextFieldにフォーカスがある場合の背景色を設定
#navi(../)
*JTextFieldにフォーカスがある場合の背景色を設定 [#rfb552fd]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2006-08-07~
更新日:&lastmod;
---
category: swing
folder: FocusColor
title: JTextFieldにフォーカスがある場合の背景色を設定
tags: [JTextField, FocusListener]
author: aterai
pubdate: 2006-08-07T16:37:20+09:00
description: どのJTextFieldを編集しているのかを分かりやすくするために、フォーカスのあるJTextFieldの背景色を変更します。
image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTM__NmYpI/AAAAAAAAAaE/EUMDKR-Rwa4/s800/FocusColor.png
---
* 概要 [#summary]
どの`JTextField`を編集しているのかを分かりやすくするために、フォーカスのある`JTextField`の背景色を変更します。

#contents
#download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTM__NmYpI/AAAAAAAAAaE/EUMDKR-Rwa4/s800/FocusColor.png)

**概要 [#g4d9552c]
どのJTextFieldを編集しているのかを分かりやすくするために、フォーカスのあるJTextFieldの背景色を変更します。
* サンプルコード [#sourcecode]
#code(link){{
class BGFocusListener implements FocusListener {
  private final Color color;
  protected BGFocusListener(Color color) {
    this.color = color;
  }

#screenshot
  @Override public void focusGained(FocusEvent e) {
    e.getComponent().setBackground(color);
  }

**サンプルコード [#eb0e7a99]
#code{{
 private static class BGFocusListener implements FocusListener {
   private final Color dColor;
   private final Color oColor;
   public BGFocusListener(Color oColor, Color dColor) {
     this.dColor = dColor;
     this.oColor = oColor;
   }
   public void focusGained(final FocusEvent e) {
     ((JTextField)e.getSource()).setBackground(dColor);
   }
   public void focusLost(final FocusEvent e) {
     ((JTextField)e.getSource()).setBackground(oColor);
   }
 }
  @Override public void focusLost(FocusEvent e) {
    e.getComponent().setBackground(UIManager.getColor("TextField.background"));
  }
}
}}
-&jnlp;
-&jar;
-&zip;

**解説 [#rb40a9f5]
JTextFieldにFocusListenerを追加することで、focusGained、focusLostした場合にそれぞれ背景色を変更しています。
* 解説 [#explanation]
上記のサンプルでは、`JTextField`に`FocusListener`を追加し、`focusGained(...)`メソッドをオーバーライドして背景色を指定した色に変更、`focusLost(...)`メソッドをオーバーライドして`JTextField`のデフォルト背景色(`UIManager.getColor("TextField.background")`)に戻しています。

//**参考リンク
**コメント [#o9ee515c]
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/event/FocusListener.html FocusListener (Java Platform SE 8)]

* コメント [#comment]
#comment
#comment