Swing/FocusColor のバックアップ差分(No.7)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/FocusColor へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
--- 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`の背景色を変更します。 #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTM__NmYpI/AAAAAAAAAaE/EUMDKR-Rwa4/s800/FocusColor.png) * サンプルコード [#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; } @Override public void focusGained(final FocusEvent e) { ((JTextField) e.getSource()).setBackground(dColor); @Override public void focusGained(FocusEvent e) { e.getComponent().setBackground(color); } @Override public void focusLost(final FocusEvent e) { ((JTextField) e.getSource()).setBackground(oColor); @Override public void focusLost(FocusEvent e) { e.getComponent().setBackground(UIManager.getColor("TextField.background")); } } }} * 解説 [#explanation] `JTextField`に`FocusListener`を追加することで、`focusGained`、`focusLost`した場合にそれぞれ背景色を変更しています。 上記のサンプルでは、`JTextField`に`FocusListener`を追加し、`focusGained`で背景色を指定した色に変更、`focusLost`で`JTextField`のデフォルト背景色(`UIManager.getColor("TextField.background")`)に戻しています。 //* 参考リンク [#reference] * コメント [#comment] #comment #comment