Swing/FocusColor のバックアップの現在との差分(No.1)
TITLE:JTextFieldにフォーカスがある場合の背景色を設定
JTextFieldにフォーカスがある場合の背景色を設定
編集者:Terai Atsuhiro~
作成日:2006-08-07
更新日:2021-03-14 (日) 19:50:29
概要
どのJTextField
を編集しているのかを分かりやすくするために、フォーカスのあるJTextField
の背景色を変更します。
Screenshot
Advertisement
概要
どの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;
解説
上記のサンプルでは、JTextField
にFocusListener
を追加し、focusGained(...)
メソッドをオーバーライドして背景色を指定した色に変更、focusLost(...)
メソッドをオーバーライドしてJTextField
のデフォルト背景色(UIManager.getColor("TextField.background")
)に戻しています。