• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTextFieldにフォーカスがある場合の背景色を設定
#navi(../)
#tags(JTextField, FocusListener)
RIGHT:Posted by &author(aterai); at 2006-08-07
* JTextFieldにフォーカスがある場合の背景色を設定 [#rfb552fd]
---
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)

#ref(https://lh6.googleusercontent.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