TITLE:JTextFieldにフォーカスがある場合の背景色を設定

JTextFieldにフォーカスがある場合の背景色を設定

編集者:Terai Atsuhiro~

作成日:2006-08-07
更新日:2021-03-14 (日) 19:50:29
  • 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

概要

どのJTextFieldを編集しているのかを分かりやすくするために、フォーカスのあるJTextFieldの背景色を変更します。

概要

どのJTextFieldにフォーカスがあるかを見やすくするために、フォーカスがきた場合にその背景色を変更します。

サンプルコード

#spanend
#spanadd
class BGFocusListener implements FocusListener {
#spanend
  private final Color color;
  protected BGFocusListener(Color color) {
    this.color = color;
  }

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

#spandel
**サンプルコード [#eb0e7a99]
#spanend
 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"));
  }
#spanadd
}
#spanend
#spanadd
View in GitHub: Java, Kotlin
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、JTextFieldFocusListenerを追加し、focusGained(...)メソッドをオーバーライドして背景色を指定した色に変更、focusLost(...)メソッドをオーバーライドしてJTextFieldのデフォルト背景色(UIManager.getColor("TextField.background"))に戻しています。

解説

JTextFieldにFocusListenerを追加することで、focusGained、focusLostした場合にそれぞれ背景色を変更しています。

参考リンク

コメント

コメント