001 package com.croftsoft.core.gui; 002 003 import java.awt.*; 004 import java.awt.event.*; 005 006 import com.croftsoft.core.lang.NullArgumentException; 007 008 /********************************************************************* 009 * Used to reset a text field upon key press after user input error. 010 * 011 * <p> 012 * Example: 013 * <pre> 014 * String text = textField.getText ( ); 015 * 016 * if ( "".equals ( text.trim ( ) ) ) 017 * { 018 * textField.setBackground ( Color.red ); 019 * 020 * urlTextField.setText ( "data required" ); 021 * 022 * textField.addKeyListener ( 023 * new ResetTextFieldKeyListener ( textField, Color.white ) ); 024 * } 025 * </pre> 026 * </p> 027 * 028 * <p> 029 * Upon key press detection, ResetTextFieldKeyListener will 030 * <ol> 031 * <li> remove itself as a KeyListener from the TextField, 032 * <li> set the TextField background to backgroundColor, and 033 * <li> set the TextField to defaultText. 034 * </ol> 035 * </p> 036 * 037 * @version 038 * 2001-03-23 039 * @since 040 * 2001-03-23 041 * @author 042 * <A HREF="http://www.alumni.caltech.edu/~croft">David W. Croft</A> 043 *********************************************************************/ 044 045 public final class ResetTextFieldKeyListener 046 extends KeyAdapter 047 ////////////////////////////////////////////////////////////////////// 048 ////////////////////////////////////////////////////////////////////// 049 { 050 051 private TextField textField; 052 053 private Color backgroundColor; 054 055 private String defaultText; 056 057 ////////////////////////////////////////////////////////////////////// 058 ////////////////////////////////////////////////////////////////////// 059 060 public ResetTextFieldKeyListener ( 061 TextField textField, 062 Color backgroundColor, 063 String defaultText ) 064 ////////////////////////////////////////////////////////////////////// 065 { 066 NullArgumentException.check ( this.textField = textField ); 067 068 NullArgumentException.check ( 069 this.backgroundColor = backgroundColor ); 070 071 NullArgumentException.check ( this.defaultText = defaultText ); 072 } 073 074 /********************************************************************* 075 * this ( textField, backgroundColor, "" ); 076 *********************************************************************/ 077 public ResetTextFieldKeyListener ( 078 TextField textField, 079 Color backgroundColor ) 080 ////////////////////////////////////////////////////////////////////// 081 { 082 this ( textField, backgroundColor, "" ); 083 } 084 085 ////////////////////////////////////////////////////////////////////// 086 ////////////////////////////////////////////////////////////////////// 087 088 public void keyPressed ( KeyEvent keyEvent ) 089 ////////////////////////////////////////////////////////////////////// 090 { 091 textField.removeKeyListener ( this ); 092 093 textField.setBackground ( backgroundColor ); 094 095 textField.setText ( defaultText ); 096 } 097 098 ////////////////////////////////////////////////////////////////////// 099 ////////////////////////////////////////////////////////////////////// 100 }