Swing/FocusColor のバックアップの現在との差分(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/FocusColor へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JTextFieldにフォーカスがある場合の背景色を設定 #navi(../) *JTextFieldにフォーカスがある場合の背景色を設定 [#rfb552fd] >編集者:[[Terai Atsuhiro>terai]]~ 作成日:2006-08-07~ 更新日:&lastmod; --- 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`の背景色を変更します。 #contents #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTM__NmYpI/AAAAAAAAAaE/EUMDKR-Rwa4/s800/FocusColor.png) **概要 [#g4d9552c] どのJTextFieldを編集しているのかを分かりやすくするために、フォーカスのあるJTextFieldの背景色を変更します。 * サンプルコード [#sourcecode] #code(link){{ class BGFocusListener implements FocusListener { private final Color color; protected BGFocusListener(Color color) { this.color = color; } #screenshot @Override public void focusGained(FocusEvent e) { e.getComponent().setBackground(color); } **サンプルコード [#eb0e7a99] #code{{ 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")); } } }} -&jnlp; -&jar; -&zip; **解説 [#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