El siguiente es un jTextfield personalizado con nuevas características
Características agregadas:
Cambia Color de fondo y Color de Letra al recibir el Enfoque (focusGained).
Retorna al Color de fondo y Color de Letra por defecto al perder el Enfoque (focusLost)
setFocusForeground(color): Asigna el color que mostrara el TEXTO al recibir el enfoque
getFocusForeground(): Devuelve el color que mostrara el TEXTO al recibir el
setFocusBackground(color) Asigna el color de FONDO al recibir el enfoque
Ucase:
setUcase(opcion) : Tipo de Ucase - STANDAR (Texto Normal), UPPER (Texto solo en May.) LOWER (Texto solo en Min.)
getFocusBackground(): Devuelve el color de FONDO al recibir el enfoque
Limita el texto en Mayúsculas o Minúsculas según la opción escogida
setUcase(opcion) : Tipo de Ucase - STANDAR (Texto Normal), UPPER (Texto solo en May.) LOWER (Texto solo en Min.)
getUcase() : Devuelve el tipo de Ucase
FocusNextControl
setFocusPreviousControl(Component): Asigna el control al que enviara el enfoque al presionar las teclas (Izquierda o Arriba).
setFocusEnter(boolean): Asiganar True si desean que al presionar ENTER el enfoque pase al FocusNextControl
getFocusEnter(): Devuelve si cambia el enfoque al presionar la tecla ENTER
Copia desde la siguiente linea hasta FIN DE CÓDIGO
//=====================INICIO DE CÓDIGO=========
Puedes asignar un Control SIGUIENTE O PREVIO para que reciba el enfoque al presionar las teclas:
- DERECHA O ABAJO para ir al control SIGUIENTE (FocusNextControl)
- IZQUIERDA O ARRIBA para ir al control ANTERIOR (FocusPreviousControl)
FocusNextControl
setFocusNextControl(Component): Asigna el control al que enviara el enfoque al presionar las teclas (Derecha o Abajo).
- Nota: Para que envié el enfoque con la tecla DERECHA el cursor debe estar en la ultima posición caso contrario solo avanzara de letra en letra
setFocusPreviousControl(Component): Asigna el control al que enviara el enfoque al presionar las teclas (Izquierda o Arriba).
- Nota: Para que envié el enfoque con la tecla IZQUIERDA el cursor debe estar en la al inicio del texto caso contrario solo retrocederá de letra en letra
setFocusEnter(boolean): Asiganar True si desean que al presionar ENTER el enfoque pase al FocusNextControl
getFocusEnter(): Devuelve si cambia el enfoque al presionar la tecla ENTER
Si deseas el control listo para agregar al tu proyecto puedes descargarlo Gratis AQUI
CÓDIGO LEX
Debes crear la clase jTextRfieldCopia desde la siguiente linea hasta FIN DE CÓDIGO
//=====================INICIO DE CÓDIGO=========
import java.awt.Component; import java.awt.Color; import java.awt.event.KeyEvent; import javax.swing.JLabel; import javax.swing.JTextField; /** * * @author Neox */ public class jTextRfield extends JTextField{ private Color ForeGAuxiliar; private Color BackGAuxiliar; protected Color FocusForeground; protected Color FocusBackground; protected boolean FocusEnter; protected Component FocusNextControl=null; protected CharacterCasing Ucase; protected JLabel FocusjLabel; protected Component FocusPreviousControl=null; protected Object tag; public Object getTag() { return tag; } public void setTag(Object tag) { this.tag = tag; } public enum CharacterCasing { STANDAR, UPPER, LOWER } public CharacterCasing getUcase(){ return this.Ucase; } public void setUcase(CharacterCasing character_casing){ this.Ucase=character_casing; } public jTextRfield(){ jTextRfield.super.setText("codigolex.blogspot.com"); FocusForeground=jTextRfield.super.getForeground(); FocusBackground=jTextRfield.super.getBackground(); FocusEnter=false; FocusNextControl=null; FocusjLabel=null; Ucase= CharacterCasing.STANDAR; jTextRfield.super.addFocusListener(new java.awt.event.FocusAdapter() { @Override public void focusGained(java.awt.event.FocusEvent evt) { ForeGAuxiliar= jTextRfield.super.getForeground(); jTextRfield.super.setForeground(FocusForeground); BackGAuxiliar= jTextRfield.super.getBackground(); jTextRfield.super.setBackground(FocusBackground); if (FocusjLabel != null)FocusjLabel.setText(jTextRfield.super.getText()); } @Override public void focusLost(java.awt.event.FocusEvent evt) { jTextRfield.super.setForeground(ForeGAuxiliar); jTextRfield.super.setBackground(BackGAuxiliar); if (FocusjLabel != null)FocusjLabel.setText(""); } }); jTextRfield.super.addKeyListener(new java.awt.event.KeyAdapter() { @Override public void keyPressed(java.awt.event.KeyEvent evt) { try{ if (FocusEnter==true){ if(evt.getKeyCode() == KeyEvent.VK_ENTER) { FocusNextControl.requestFocus(); } } switch (evt.getKeyCode()){ case KeyEvent.VK_UP: FocusPreviousControl.requestFocus(); break; case KeyEvent.VK_DOWN: FocusNextControl.requestFocus(); break; case KeyEvent.VK_LEFT: if(jTextRfield.super.getCaretPosition()==0) FocusPreviousControl.requestFocus(); break; case KeyEvent.VK_RIGHT: if(jTextRfield.super.getCaretPosition()==jTextRfield.super.getText().length())FocusNextControl.requestFocus(); break; default: if (isEditable()==false)evt.consume(); } } catch (Exception ex){ } } @Override public void keyReleased(KeyEvent e) { if (FocusjLabel != null) FocusjLabel.setText(jTextRfield.super.getText()); } @Override public void keyTyped(KeyEvent e) { if (isEditable()==true){ String tecla=String.valueOf(e.getKeyChar()); switch(Ucase){ case UPPER : tecla=tecla.toUpperCase(); e.setKeyChar(tecla.charAt(0)); break; case STANDAR: e.setKeyChar(tecla.charAt(0)); break; case LOWER: tecla=tecla.toLowerCase(); e.setKeyChar(tecla.charAt(0)); break; } } else{ e.consume(); } } }); } public JLabel getFocusjLabel() { return FocusjLabel; } public Component getFocusPreviousControl() { return FocusPreviousControl; } public void setFocusPreviousControl(Component FocusPreviousControl) { this.FocusPreviousControl = FocusPreviousControl; } public void setFocusjLabel(JLabel FocusjLabel) { this.FocusjLabel = FocusjLabel; } public void setFocusNextControl(Component FocusNextControl) { this.FocusNextControl = FocusNextControl; } //PROPIEDAD FOCUSENTER public boolean getFocusEnter() { return FocusEnter; } public void setFocusEnter(boolean FocusEnter) { this.FocusEnter = FocusEnter; } //PROPIEDAD FOCUSFOREGROUND public Color getFocusForeground() { return FocusForeground; } public void setFocusForeground(Color ForegroundFocus_) { this.FocusForeground = ForegroundFocus_; } //PROPIEDAD FOCUSBACKGROUND public Color getFocusBackground() { return FocusBackground; } public void setFocusBackground(Color colorGotfocus_) { this.FocusBackground = colorGotfocus_; } }//===============FIN DE CÓDIGO==================
0 comentarios:
Publicar un comentario