Dudas, aportes, controles y trabajo personalizado de Java

jueves, 30 de marzo de 2017

Control JComboBox Personalizado Java para base de datos


En JAVA, sabemos lo tedioso que es llenar un jComboBox desde una Tabla o una consulta usando un Administrador de Base de Datos.

En Visual encontramos unas propiedades muy "ahorrativas" como ValueMember y DisplayMember junto a un DataSource

El siguiente es un jCombobox personalizado con nuevas características

Ejemplo:



jDataComboR es un extends de JComboBox


Características agregadas:

Asignar una tabla o una consulta mediante ResulSet o un DefaultTableModel


DisplayMember:
setDisplayMember(String): Asigna nombre del "Campo" que mostrara el combo
getDisplayMember(): Devuelve nombre del "Campo" que mostrara el combo
ValueMember
setValueMember(String) Asigna nombre del "Campo" referencia (mayormente "CODIGO")
getValuemember(): Devuelve nombre del "Campo" referencia (mayormente "CODIGO")
PUEDE USARSE CUALQUIERA DE ESTOS 2 METODOS PARA LLENAR EL COMBO

TableModelSource
setTableModelSource(DefaultTableModel): Asigna el tableModel que contiene la tabla o consulta

ResultSetSource
SerResultSetSource(ResulSet ): Asigna el ResulSet que contiene la tabla o consulta, no olviden cerrar el Resultset o destruilo

Cada ítem del Combo guarda toda la fila y podran acceder a los campo a traves de la propiedad SelectedRowItem o RowItem


SelectedRowItem:
getSelectedRowItem(integer): Recibe el numero de la columna, Devuelve el Valor de la columna solicitada según el Ítem seleccionadogetSelectedRowItem(String): Recibe el nombre de la columna, Devuelve el Valor de la columna solicitada por NOMBRE según el Ítem seleccionado

RowItem:
getRowItem(index integer): Recibe el numero de FILA y de la columna, Devuelve el Valor de la columna solicitada según el index
getRowItem(index String): Recibe el numero de FILA y el nombre de la columna, Devuelve el Valor de la columna solicitada por NOMBRE según el index

Tiene una Propiedad denominada "PermitirBlanco"



PermitirBlanco:
setPermitirBlanco(boolean): True para perimitir que se escoja un Item en blanco, False para obligar a Escoger un ItemisPermitirBlanco(): Devuelve boolean

Si deseas el control listo para agregar al tu proyecto puedes descargarlo Gratis AQUI



Share:

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:

Popular Posts

Recent Posts

Unordered List

Buscar este blog

Datos personales

Control JComboBox Personalizado Java para base de datos

En JAVA, sabemos lo tedioso que es llenar un jComboBox desde una Tabla o una consulta usando un Administrador de Base de Datos. En Visua...