lunes, 22 de septiembre de 2014

Métodos, Validaciones, Modelos, Autocometar, LookAndFeel en Java v 1.0

Tags

Para descargar todo el proyecto los links están al final de la publicación. 


Auto completar: para un combo y una caja de texto, esto lo encontraras al descargar el proyecto completo.

Cambio del diseño del formulario: 

            UIManager.setLookAndFeel(new SyntheticaBlackEyeLookAndFeel());



Métodos para realizar validaciones: Como por ejemplo solo números, solo letras, solo números y letras, solo números decimales, numeroRuc, numeroTelefono, edad, activarDesactivarBotones etc.


  public static void activarControles(JComponent componetes, boolean estado) {
        Component[] contenedor = componetes.getComponents();
        for (int i = 0; i < contenedor.length; i++) {
            if (contenedor[i] instanceof JTextField
                    || contenedor[i] instanceof JLabel
                    || contenedor[i] instanceof JButton
                    || contenedor[i] instanceof JCheckBox
                    || contenedor[i] instanceof JTextComponent
                    || contenedor[i] instanceof JSpinner
                    || contenedor[i] instanceof JDateChooser
                    || contenedor[i] instanceof JComboBox) {
                contenedor[i].setEnabled(estado);
            }
        }
    }

 

    public static void activarLimpiarControles(JComponent componetes, boolean estado) {
        Component[] contenedor = componetes.getComponents();
        Component aux;
        for (int i = 0; i < contenedor.length; i++) {
            if (contenedor[i] instanceof JTextField
                    || contenedor[i] instanceof JLabel
                    || contenedor[i] instanceof JButton
                    || contenedor[i] instanceof JCheckBox
                    || contenedor[i] instanceof JRadioButton
                    || contenedor[i] instanceof JSpinner
                    || contenedor[i] instanceof JDateChooser
                    || contenedor[i] instanceof JTextComponent
                    || contenedor[i] instanceof JComboBox) {

                contenedor[i].setEnabled(estado);

                if (contenedor[i] instanceof JTextField) {
                    aux = contenedor[i];
                    ((JTextField) aux).setText("");
                }
                if (contenedor[i] instanceof JComboBox) {
                    aux = contenedor[i];
                    ((JComboBox) aux).setSelectedIndex(-1);
                }
                if (contenedor[i] instanceof JCheckBox) {
                    aux = contenedor[i];
                    ((JCheckBox) aux).setSelected(false);
                }
                if (contenedor[i] instanceof JRadioButton) {
                    aux = contenedor[i];
                    ((JRadioButton) aux).setSelected(false);
                }
                if (contenedor[i] instanceof JDateChooser) {
                    aux = contenedor[i];
                    ((JDateChooser) aux).setDate(null);
                }
            }
        }
    }

public static void soloNumeros(JTextField txt, int numeroCaracteres) {
        txt.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent evt) {
                char car = evt.getKeyChar();
                if (car < '0' || car > '9') { // numero que estan entre  0-9
                    evt.consume();
                }

                if (numeroCaracteres > 0) {
                    if (txt.getText().length() == numeroCaracteres) {
                        evt.consume();
                    }
                }
            }
        });
    }


  public static void soloNumerosDecimales(JTextField txt, int numeroCaracteres) {

        txt.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent evt) {
                char c = evt.getKeyChar();
                if (((c < '0') || (c > '9')) && (c != KeyEvent.VK_BACK_SPACE) && (c != '.')) {
                    evt.consume();
                }
                if (c == '.' && txt.getText().contains(".")) {
                    evt.consume();
                }

                if (numeroCaracteres > 0) {
                    if (txt.getText().length() == numeroCaracteres) {
                        evt.consume();
                    }
                }
            }
        });
    }

  public static void soloLetrasNumeros(JTextField txt, int numeroCaracteres) {
        txt.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                char c = e.getKeyChar();
                if ((c < 'a' || c > 'z')
                        && (c < 'A' || c > 'Z')
                        && (c < '0' || c > '9')
                        && c != 'á' //Minúsculas
                        && c != 'é'
                        && c != 'í'
                        && c != 'ó'
                        && c != 'ú'
                        && c != 'Á' //Mayúsculas
                        && c != 'É'
                        && c != 'Í'
                        && c != 'Ó'
                        && c != 'Ú'
                        && (c != (char) e.VK_SPACE)) {
                    e.consume(); //evita que se escriba el caracter
                }
                if (numeroCaracteres > 0) {
                    if (txt.getText().length() == numeroCaracteres) {
                        e.consume();
                    }
                }
            }
        });
    }

  public static void soloLetras(JTextField txt, int numeroCaracteres) {
        txt.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                char c = e.getKeyChar();
                if ((c < 'a' || c > 'z')
                        && (c < 'A' || c > 'Z')
                        && c != 'á' //Minúsculas
                        && c != 'é'
                        && c != 'í'
                        && c != 'ó'
                        && c != 'ú'
                        && c != 'Á' //Mayúsculas
                        && c != 'É'
                        && c != 'Í'
                        && c != 'Ó'
                        && c != 'Ú'
                        && (c != (char) e.VK_SPACE)) {
                    e.consume(); //evita que se escriba el caracter
                }
                if (numeroCaracteres > 0) {
                    if (txt.getText().length() == numeroCaracteres) {
                        e.consume();
                    }
                }
            }
        });
    }

    public static String formatearNumero(double numero) {
        DecimalFormatSymbols simbolos = new DecimalFormatSymbols();
        simbolos.setDecimalSeparator('.');
        simbolos.setGroupingSeparator(',');
        DecimalFormat formato = new DecimalFormat("###,###.00", simbolos);
        return formato.format(numero);
    }

  public static MaskFormatter validarEntradas(int op) {
        MaskFormatter mascara = null;
        try {
            switch (op) {
                case 1:
//                    ruc
                    mascara = new MaskFormatter("###########");
                    break;
                case 2:
//                    Fechas
                    mascara = new MaskFormatter("##/##/####");
                    break;
                case 3:
//                    Telefono Fijo
                    mascara = new MaskFormatter("(##) ## ## ##");
//                    mascara.setValidCharacters("0123456789");
                    break;
                case 4:
//                    Celular 
                    mascara = new MaskFormatter("### ### ###");
                    break;
                case 5:
//                    Dni
                    mascara = new MaskFormatter("########");
                    break;
            }
        } catch (ParseException erro) {
        }
        return mascara;
    }

Modelo combo 

public class ModeloComboCargoTrabajador extends AbstractListModel
        implements ComboBoxModel {

    private Cargo seleccionado;
    private List<Cargo> listaCargos;

    public Cargo getSeleccionado() {
        return seleccionado;
    }

    public void setSeleccionado(Cargo seleccionado) {
        this.seleccionado = seleccionado;
    }

    public List<Cargo> getListaCargos() {
        return listaCargos;
    }

    public void setListaCargos(List<Cargo> listaCargos) {
        this.listaCargos = listaCargos;
    }
 
    @Override
    public int getSize() {
        int cantidad = 0;
        if (this.listaCargos != null) {
            cantidad = this.listaCargos.size();
        }
        return cantidad;
    }

    @Override
    public Object getElementAt(int i) {
        Object dato = null;
        if (this.listaCargos != null) {
            dato = this.listaCargos.get(i).getNombreCargo();
        }
        return dato;
    }

    @Override
    public void setSelectedItem(Object o) {
        this.seleccionado = null;
        if (o != null && this.listaCargos != null) {
            for (Cargo u : listaCargos) {
                if (u.getNombreCargo().equals(o.toString()) == true) {
                    this.seleccionado = u;
                    return;
                }
            }
        }

    }

    @Override
    public Object getSelectedItem() {
        String valor = "";
        if (this.seleccionado != null) {
            valor = this.seleccionado.getNombreCargo();
        }
        return valor;
    }

// Este Codigo se AGrega Adicionalmente al de lo modelos
    // El cual devolvera el boton modificar
    public void setCargoTrabajador(Cargo car) {
        this.seleccionado = null;
        if (car != null && this.listaCargos != null) {
            for (Cargo c : this.listaCargos) {
                if (c.getNombreCargo().equals(car.getNombreCargo())) {
                    this.seleccionado = c;
                    return;
                }
            }
        }
    }

    public void setCargoTrabajadorId(Trabajador tra) {
        this.seleccionado = null;
        if (tra != null && this.listaCargos != null) {
            for (Cargo c : this.listaCargos) {
                if (c.getCodigo()== tra.getCodigo()) {
                    this.seleccionado = c;
                    return;
                }
            }
        }
    }
}

Modelo Tabla 
public class ModeloTablaTrabajador extends AbstractTableModel {

    private List<Trabajador> listaTrabajadores;

    public List<Trabajador> getListaTrabajadores() {
        return listaTrabajadores;
    }

    public void setListaTrabajadores(List<Trabajador> listaTrabajadores) {
        this.listaTrabajadores = listaTrabajadores;
        this.fireTableDataChanged();
    }

  

    @Override
    public String getColumnName(int columna) {
        String nombreColumna = "";
        switch (columna) {
            case 0:
                nombreColumna = "Nombres";
                break;
            case 1:
                nombreColumna = "Direccion";
                break;
            case 2:
                nombreColumna = "Celular";
                break;
            case 3:
                nombreColumna = "Edad";
                break;
            case 4:
                nombreColumna = "DNI";
                break;
        }
        return nombreColumna;
    }

    @Override
    public int getRowCount() {
        int filas = 0;

        if (this.listaTrabajadores != null) {
            filas = this.listaTrabajadores.size();
        }
        return filas;
    }

    @Override
    public int getColumnCount() {
        return 5;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Trabajador tra;
        Object valor = "";
        if (this.listaTrabajadores != null) {
            tra = this.listaTrabajadores.get(rowIndex);
            switch (columnIndex) {
                case 0:
                    valor = tra.getNombresCompletos();
                    break;
                case 1:
                    valor = tra.getDireccion();
                    break;
                case 2:
                    valor = tra.getCelular();
                    break;
                case 3:
                    valor = tra.getEdad();
                    break;
                case 4:
                    valor = tra.getDni();
                    break;
            }
        }
        return valor;
    }
}


Métodos para conectarme a una Base de Datos "Postgres": Insertar usando una cadena, insertar usando una función, insertar usando una función extendiendo de DAO y usando la clase parametro, insertar usando una cadena y extendiendo de DAO, listar etc. 

Nota: para conectar con sqlserver hay algunas variaciones

Clase DAO
package DAO;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;

public class DAOPostgres {

    private Connection conexion;
    private boolean transaccionIniciada;
    private String driver= "org.postgresql.Driver";

    protected Connection getConexion() {
        return conexion;
    }

    protected void Conectar(boolean wTransaccion) throws Exception {
        Class.forName(driver);
        this.conexion = DriverManager.getConnection("jdbc:postgresql://localhost/bd_accesodatos_validaciones","postgres", "usatING123");
     
        if (wTransaccion == true) {
            this.conexion.setAutoCommit(false);
            this.transaccionIniciada = true;
        } else {
            this.conexion.setAutoCommit(true);
            this.transaccionIniciada = false;
        }
    }

    protected void Cerrar(boolean wEstado) throws Exception {
        if (this.conexion != null) {
            if (this.transaccionIniciada == true) {
                try {
                    if (wEstado == true) {
                        this.conexion.commit();
                    } else {
                        this.conexion.rollback();
                    }
                } catch (Exception e) {
                    throw e;
                }
            }
            try {
                this.conexion.close();
            } catch (Exception e) {
            }
        }
        this.conexion = null;
    }

    protected void EjecutarOrden(String wSQL) throws Exception {
        Statement st;

        if (this.conexion != null) {
            st = this.conexion.createStatement();
            st.executeUpdate(wSQL);
        }
    }

    protected ResultSet EjecutarOrdenDatos(String wSQL) throws Exception {
        Statement st;
        ResultSet rs = null;

        if (this.conexion != null) {
            st = this.conexion.createStatement();
            rs = st.executeQuery(wSQL); //select
        }
        return rs;
    }

    protected Object EjecutarProcedimiento(String wProcedimiento, List<ParametroPostgres> wParametros) throws Exception {
        CallableStatement cs;
        Object valor = null;
        int parSalida = -1;
        int i = 1;
        try {
            cs = this.getConexion().prepareCall(wProcedimiento);
            if (wParametros != null) {
                for (ParametroPostgres par : wParametros) {
                    if (par.isEntrada() == true) {
                        cs.setObject(i, par.getValor());
//            cs.setObject(par.getNombre(), par.getValor());
                    } else {
                        parSalida = i;
                        cs.registerOutParameter(i, par.getTipo());
                    }
                    i += 1;
                }
            }
            cs.executeUpdate();
            if (parSalida > 0) {
                valor = cs.getObject(parSalida);
                //valor = cs.getObject("xxx");
            }
        } catch (Exception e) {
            throw e;
        } finally {
            cs = null;
        }
        return valor;
    }

    protected ResultSet EjecutarProcedimientoDatos(String wProcedimiento, List<ParametroPostgres> wParametros) throws Exception {
        CallableStatement cs;
        ResultSet rs = null;
        int i = 1;

        try {
            cs = this.getConexion().prepareCall(wProcedimiento);
            if (wParametros != null) {
                for (ParametroPostgres par : wParametros) {
                    if (par.isEntrada() == true) {
                        cs.setObject(i, par.getValor());
                    } else {
                        cs.registerOutParameter(i, par.getTipo());
                    }
                    i += 1;
                }
            }
            cs.execute();
            //rs = cs.executeQuery();
            rs = (ResultSet) cs.getObject(1);
        } catch (Exception e) {
            throw e;
        } finally {
            cs = null;
        }

        return rs;
    }

}

Clase Parámetro: 
package DAO;

public class ParametroPostgres {
  
  private String nombre;
  private Object valor;
  private boolean entrada;
  private int tipo;

  public ParametroPostgres() {
    this.entrada = true;
  }
  
  public ParametroPostgres(String nombre, Object valor) {
    this.nombre = nombre;
    this.valor = valor;
    this.entrada = true;
  }

  public ParametroPostgres(String nombre, boolean entrada, int tipo) {
    this.nombre = nombre;
    this.valor = null;
    this.entrada = entrada;
    this.tipo = tipo;
  }
  
   public int getTipo() {
    return this.tipo;
  }

  public void setTipo(int tipo) {
    this.tipo = tipo;
  }
  
  public boolean isEntrada() {
    return entrada;
  }

  public void setEntrada(boolean entrada) {
    this.entrada = entrada;
  }

  public String getNombre() {
    return nombre;
  }

  public void setNombre(String nombre) {
    this.nombre = nombre;
  }

  public Object getValor() {
    return valor;
  }

  public void setValor(Object valor) {
    this.valor = valor;
  }

  
}

Métodos para insertar y listar usando DAO y parámetro 

public class DAOTrabajador extends DAOPostgres {

    String driver = "org.postgresql.Driver";
    String url = "jdbc:postgresql://localhost/bd_accesodatos_validaciones";
    String usuario = "postgres";
    String clave = "usatING123";

    /**
     * Este metodo me registra un trabajador utilizando una cadena Para poder
     * utilizar este metodo es necesario extender de la clase DAO
     *
     * @param trabajador es la clase Trabajador
     * @throws Exception
     */
    public void regTrabajadorDAOCadena(Trabajador trabajador) throws Exception {
        String sql = "insert into trabajador (nombre, dni, edad, sueldo, fechanacimiento, estado, direccion, telefono, celular, ruc, codigocargo)\n"
                + "values ('" + trabajador.getNombresCompletos()
                + "', '" + trabajador.getDni()
                + "', " + trabajador.getEdad()
                + ", " + trabajador.getSueldo()
                + ", '" + trabajador.getFechaNaciemiento()
                + "', " + trabajador.isEstado()
                + " , '" + trabajador.getDireccion()
                + "', '" + trabajador.getTelefonoFijo()
                + "','" + trabajador.getCelular()
                + "', '" + trabajador.getRuc()
                + "', " + trabajador.getCargoPersona().getCodigo() + ")";
        try {
            this.Conectar(true);
            this.EjecutarOrden(sql);
            this.Cerrar(true);
        } catch (Exception e) {
            this.Cerrar(false);
            throw e;
        } finally {
            sql = "";
        }
    }

    /**
     * Este registrar es con una funcion creada en postgressql y para poder
     * usarla es necesario extender de dao y tener la clase parametro, estas son
     * de mucha utilidad si queremos optimizar y estandarizar nuestro codigo
     *
     * @param trab
     * @throws Exception
     */
    public void regTrabajadorDAOFuncion(Trabajador trab) throws Exception {
        try {

            Date a = new java.sql.Date(trab.getFechaNaciemiento().getTime());
            List<ParametroPostgres> pars = new ArrayList<ParametroPostgres>();
            pars.add(new ParametroPostgres("", trab.getNombresCompletos()));
            pars.add(new ParametroPostgres("", trab.getDni()));
            pars.add(new ParametroPostgres("", trab.getEdad()));
            pars.add(new ParametroPostgres("", trab.getSueldo()));
            pars.add(new ParametroPostgres("", a));
            //parsRegistroResiduos.add(new Parametro("", new java.sql.Date(registroresiduos.getFechaGuiaRemicion().getTime())));
            pars.add(new ParametroPostgres("", trab.isEstado()));
            pars.add(new ParametroPostgres("", trab.getDireccion()));
            pars.add(new ParametroPostgres("", trab.getTelefonoFijo()));
            pars.add(new ParametroPostgres("", trab.getCelular()));
            pars.add(new ParametroPostgres("", trab.getRuc()));
            pars.add(new ParametroPostgres("", trab.getCargoPersona().getCodigo()));
            this.Conectar(true);
            this.EjecutarProcedimiento("{ call fu_r_Trababajador(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }", pars);
            this.Cerrar(true);
        } catch (Exception e) {
            this.Cerrar(false);
            throw e;
        } finally {

        }

    }

    /**
     * Registro de trabajador, usando una candena
     *
     * @param trabajador
     * @throws Exception
     */
    public void regTrabajadorString(Trabajador trabajador) throws Exception {  // Registro de una persina usando cadena
        Connection cn = null;
        Statement st = null; // SQL 
        String sql = "insert into trabajador (nombre, dni, edad, sueldo, fechanacimiento, estado, direccion, telefono, celular, ruc, codigocargo)\n"
                + "values ('" + trabajador.getNombresCompletos()
                + "', '" + trabajador.getDni()
                + "', " + trabajador.getEdad()
                + ", " + trabajador.getSueldo()
                + ", '" + trabajador.getFechaNaciemiento()
                + "', " + trabajador.isEstado()
                + " , '" + trabajador.getDireccion()
                + "', '" + trabajador.getTelefonoFijo()
                + "','" + trabajador.getCelular()
                + "', '" + trabajador.getRuc()
                + "', " + trabajador.getCargoPersona().getCodigo() + ")";

        try {
            Class.forName(this.driver); //Registro del driver
            cn = DriverManager.getConnection(this.url, this.usuario, this.clave);
            st = cn.createStatement();
            st.executeUpdate(sql);
        } catch (Exception e) {
            throw e;
        } finally {
            if (st != null) {
                st.close();
                st = null;
            }
            if (cn != null) {
                cn.close();
                cn = null;
            }
        }
    }

    /**
     * registro de trabajador usanso un funcion
     *
     * @param trabajador
     * @throws Exception
     */
    public void regTrabajadorFuncion(Trabajador trabajador) throws Exception {
        Connection cn = null;
        CallableStatement cs = null; // Es para la funcion
        java.sql.Date f = new java.sql.Date(trabajador.getFechaNaciemiento().getTime());
        try {
            Class.forName(this.driver);
            cn = DriverManager.getConnection(this.url, this.usuario, this.clave);
            cs = cn.prepareCall("{ call fu_r_Trababajador(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
            cs.setString(1, trabajador.getNombresCompletos());
            cs.setString(2, trabajador.getDni());
            cs.setInt(3, trabajador.getEdad());
            cs.setFloat(4, trabajador.getSueldo());
            cs.setDate(5, f);
            cs.setBoolean(6, trabajador.isEstado());
            cs.setString(7, trabajador.getDireccion());
            cs.setString(8, trabajador.getTelefonoFijo());
            cs.setString(9, trabajador.getCelular());
            cs.setString(10, trabajador.getRuc());
            cs.setInt(11, trabajador.getCargoPersona().getCodigo());
            cs.executeUpdate();
        } catch (Exception e) {
            throw e;
        } finally {
            if (cs != null) {
                cs.close();
                cs = null;
            }
            if (cn != null) {
                cn.close();
                cn = null;
            }
        }
    }

    public List<Trabajador> lisTrabajadoresDAOFuncion() throws Exception {
        List<Trabajador> listaTrabajadores;
        List<ParametroPostgres> pars = new ArrayList();
        Trabajador trab;
        pars.add(new ParametroPostgres("", false, Types.OTHER));
        ResultSet rs = null;
        try {
            this.Conectar(true);
            rs = this.EjecutarProcedimientoDatos("{ ?= call fu_listar() }", pars);
            listaTrabajadores = new ArrayList();
            while (rs.next() == true) {
                trab = new Trabajador();
                trab.setCodigo(rs.getInt(1));
                trab.setNombresCompletos(rs.getString(2));
                trab.setDireccion(rs.getString(3));
                trab.setCelular(rs.getString(4));
                trab.setEdad(rs.getInt(5));
                trab.setDni(rs.getString(6));
                listaTrabajadores.add(trab);

            }
            this.Cerrar(true);
        } catch (Exception e) {
            this.Cerrar(false);
            throw e;
        }
        return listaTrabajadores;
    }

    public List<Trabajador> lisTrabajadoresDAOCadena() throws Exception {
        List<Trabajador> listaTrabajadores;
        Trabajador trab;
        ResultSet rs = null;
        String sql = "SELECT  codigo, nombre, direccion, celular, edad, dni from trabajador";
        try {
            this.Conectar(true);
            rs = this.EjecutarOrdenDatos(sql);
            listaTrabajadores = new ArrayList();
            while (rs.next() == true) {
                trab = new Trabajador();
                trab.setCodigo(rs.getInt(1));
                trab.setNombresCompletos(rs.getString(2));
                trab.setDireccion(rs.getString(3));
                trab.setCelular(rs.getString(4));
                trab.setEdad(rs.getInt(5));
                trab.setDni(rs.getString(6));
                listaTrabajadores.add(trab);
            }
            this.Cerrar(true);
        } catch (Exception e) {
            this.Cerrar(false);
            throw e;
        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            trab = null;
            sql = null;
        }
        return listaTrabajadores;
    }

    public List<Trabajador> lisTrabajadorCadena() throws Exception {
        Connection cn = null;
        Statement st = null;
        List<Trabajador> lista = null;
        Trabajador trab = null;
        ResultSet rs;
        String sql = "SELECT  codigo, nombre, direccion, celular, edad, dni from trabajador";
        try {
            Class.forName(this.driver);  // Registro driver 
            cn = DriverManager.getConnection(url, this.usuario, this.clave); //creo la coneccion 
            st = cn.createStatement();
            rs = st.executeQuery(sql);
            lista = new ArrayList();
            while (rs.next() == true) {
                trab = new Trabajador();
                trab.setCodigo(rs.getInt(1));
                trab.setNombresCompletos(rs.getString(2));
                trab.setDireccion(rs.getString(3));
                trab.setCelular(rs.getString(4));
                trab.setEdad(rs.getInt(5));
                trab.setDni(rs.getString(6));
                lista.add(trab);
            }
            this.Conectar(false);
        } catch (Exception e) {
            this.Cerrar(false);
            throw e;
        } finally {
            if (trab != null) {
                trab = null;
            }
            if (cn != null || st != null) {
                cn.close();
                st.close();
            }
        }
        return lista;
    }

    public List<Trabajador> listTrabajadorFuncion() throws Exception {
        Connection cn = null;
        ResultSet rs = null;
        CallableStatement cs = null;
        List<Trabajador> lisTrab = null;
        Trabajador trab;
        try {
            Class.forName(this.driver);  // Registro driver 
            cn = DriverManager.getConnection(url, this.usuario, this.clave);
            cn.setAutoCommit(false); // desabilita el autocomic
            cs = cn.prepareCall("{? = call fu_listar()}");
            cs.registerOutParameter(1, Types.OTHER);
            cs.execute(); // tiene que ser execute(); 
            rs = (ResultSet) cs.getObject(1);
            lisTrab = new ArrayList();
            while (rs.next() == true) {
                trab = new Trabajador();
                trab.setCodigo(rs.getInt(1));
                trab.setNombresCompletos(rs.getString(2));
                trab.setDireccion(rs.getString(3));
                trab.setCelular(rs.getString(4));
                trab.setEdad(rs.getInt(5));
                trab.setDni(rs.getString(6));
                lisTrab.add(trab);
            }
            cn.commit();
        } catch (Exception e) {
            throw e;
        } finally {
            trab = null;
            if (rs != null) {
                rs.close();
                rs = null;
            }

        }
        return lisTrab;
    }

    public List<Trabajador> listTrabajadorFuncion(int codigo) throws Exception {
        Connection cn = null;
        ResultSet rs = null;
        CallableStatement cs = null;
        List<Trabajador> lisTrab = null;
        Trabajador trab;
        try {
            Class.forName(this.driver);  // Registro driver 
            cn = DriverManager.getConnection(url, this.usuario, this.clave);
            cn.setAutoCommit(false); // desabilita el autocomic
            cs = cn.prepareCall("{? = call fu_listar_parametro(?)}");
            cs.registerOutParameter(1, Types.OTHER);
            cs.setInt(2, codigo);
            cs.execute(); // tiene que ser execute(); 
            rs = (ResultSet) cs.getObject(1);
            lisTrab = new ArrayList();
            while (rs.next() == true) {
                trab = new Trabajador();
                trab.setCodigo(rs.getInt(1));
                trab.setNombresCompletos(rs.getString(2));
                trab.setDireccion(rs.getString(3));
                trab.setCelular(rs.getString(4));
                trab.setEdad(rs.getInt(5));
                trab.setDni(rs.getString(6));
                lisTrab.add(trab);
            }
            cn.commit();
        } catch (Exception e) {
            throw e;
        } finally {
            trab = null;
            if (rs != null) {
                rs.close();
                rs = null;
            }

        }
        return lisTrab;
    }

    public List<Trabajador> lisTrabajadoresDAOFuncion(int codigo) throws Exception {
        List<Trabajador> listaTrabajadores;
        List<ParametroPostgres> pars = new ArrayList();
        Trabajador trab;
        pars.add(new ParametroPostgres("", false, Types.OTHER));
        pars.add(new ParametroPostgres("", codigo));
        ResultSet rs = null;
        try {
            this.Conectar(true);
            rs = this.EjecutarProcedimientoDatos("{ ?= call fu_listar_parametro(?) }", pars);
            listaTrabajadores = new ArrayList();
            while (rs.next() == true) {
                trab = new Trabajador();
                trab.setCodigo(rs.getInt(1));
                trab.setNombresCompletos(rs.getString(2));
                trab.setDireccion(rs.getString(3));
                trab.setCelular(rs.getString(4));
                trab.setEdad(rs.getInt(5));
                trab.setDni(rs.getString(6));
                listaTrabajadores.add(trab);

            }
            this.Cerrar(true);
        } catch (Exception e) {
            this.Cerrar(false);
            throw e;
        }
        return listaTrabajadores;
    }

}



 



Modelo Combo Descargar
Modelo Table Descargar
Método Validaciones: Descargar
Proyectos completo: Descargar ahí se encuentra  el proyecto en una carpeta y en un archivo comprimido


Nota:
En el proyecto encontraras algunas cosas que no menciono que son de mucha ayuda para programar y se pueden agregar o mejorar mas cosas solo comenten y compartan. Ademas