Dudas, aportes, controles y trabajo personalizado de Java

martes, 28 de marzo de 2017

Control JTextField Personalizado Java




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:

  1. DERECHA O ABAJO para ir al control SIGUIENTE (FocusNextControl)
  2. 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==================
Share:
Ubicación: Piura, Perú

0 comentarios:

Publicar un comentario

Popular Posts

Recent Posts

Unordered List

Buscar este blog

Datos personales