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)
FocusForeground
setFocusForeground(
color): Asigna el color que mostrara el TEXTO al recibir el enfoque
getFocusForeground(): Devuelve el color que mostrara el TEXTO al recibir el
FocusBackground:
setFocusBackground(
color) Asigna el color de FONDO al recibir el enfoque
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
Ucase:
setUcase(
opcion) : Tipo de Ucase - STANDAR (Texto Normal), UPPER (Texto solo en May.) LOWER (Texto solo en Min.)
getUcase() :
Devuelve el tipo de Ucase
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
getFocusNextControl(): Devuelve el control al que enviara el enfoque al presionar las teclas (Derecha o Abajo).
FocusPreviousControl
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
getFocusPreviousControl(): Devuelve el control al que enviara el enfoque al presionar las teclas (Derecha o Abajo).
FocusEnter
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
jTextRfield
Copia 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==================