---
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 [#summary]
どの`JTextField`を編集しているのかを分かりやすくするために、フォーカスのある`JTextField`の背景色を変更します。

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

* Source Code Examples [#sourcecode]
#code(link){{
class BGFocusListener implements FocusListener {
  private final Color color;
  protected BGFocusListener(Color color) {
    this.color = color;
  }

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

  @Override public void focusLost(FocusEvent e) {
    e.getComponent().setBackground(UIManager.getColor("TextField.background"));
  }
}
}}

* Explanation [#explanation]
- `JTextField`に`FocusListener`を追加
-- `focusGained(...)`メソッドをオーバーライドして背景色を指定した色に変更
-- `focusLost(...)`メソッドをオーバーライドして`JTextField`のデフォルト背景色(`UIManager.getColor("TextField.background")`)に戻す
-- `FocusListener#focusGained(...)`メソッドをオーバーライドして背景色を指定した色に変更
-- `FocusListener#focusLost(...)`メソッドをオーバーライドして`JTextField`のデフォルト背景色(`UIManager.getColor("TextField.background")`)に戻す

* Reference [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/event/FocusListener.html FocusListener (Java Platform SE 8)]

* Comment [#comment]
#comment
#comment