• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTextFieldにフォーカスがある場合の背景色を設定
#navi(../)
#tags()
RIGHT:Posted by &author(aterai); at 2006-08-07
*JTextFieldにフォーカスがある場合の背景色を設定 [#rfb552fd]
どのJTextFieldを編集しているのかを分かりやすくするために、フォーカスのあるJTextFieldの背景色を変更します。
---
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`の背景色を変更します。

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

//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTM__NmYpI/AAAAAAAAAaE/EUMDKR-Rwa4/s800/FocusColor.png)

**サンプルコード [#eb0e7a99]
* サンプルコード [#sourcecode]
#code(link){{
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;
class BGFocusListener implements FocusListener {
  private final Color color;
  protected BGFocusListener(Color color) {
    this.color = color;
  }
  public void focusGained(final FocusEvent e) {
    ((JTextField)e.getSource()).setBackground(dColor);

  @Override public void focusGained(FocusEvent e) {
    e.getComponent().setBackground(color);
  }
  public void focusLost(final FocusEvent e) {
    ((JTextField)e.getSource()).setBackground(oColor);

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

**解説 [#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