martes, 1 de diciembre de 2015

7.- Tutorial Java Netbeans - Crear formulario Referencial para tablas de dos campos

Crear formulario Referencial para tablas de dos campos, es un formulario para poder Insertar datos, Modificar datos y eliminar datos de una tabla con dos campos.


Importaciones:
package Referenciales;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import Prgs.Conexion;
import javax.swing.ImageIcon;

Variables generales:
public class frmReferencial extends javax.swing.JDialog {
    String TituloG,TablaN,CampoId,CampoDes;
    Conexion nCon; //Conexion de la base de datos
    String sentencia; //sentencia que se va a ejecutar
    Statement ejecutar;//variable para ejecucion de sentencias
    ResultSet resultado;//variable para almacenar resultado de consultas
    DefaultTableModel mitabla = new DefaultTableModel();
    char operacion; 

Configuración inicial o principal

   public frmReferencial(java.awt.Frame parent, boolean modal, String TituloG, String TablaN, String CampoId, String CampoDes) {
        super(parent, modal);
        initComponents();
         this.setResizable(false);
                        this.setLocationRelativeTo(null);
                        this.setSize(700,480);
                        this.setTitle(" ..::"+TituloG+"::..");
                                    jLabel1.setText(TituloG);
                                    this.TablaN = TablaN;
                                    this.TituloG = TituloG;
                                    this.CampoId = CampoId;
                                    this.CampoDes = CampoDes;                
                        try {
                            ejecutar = Conexion.getConexion().createStatement();
                        } catch (SQLException ex) {
                            Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        //añadir columnas a la tabla abstracta
                        mitabla.addColumn("Codigo");
                        mitabla.addColumn("Descripcion");
                                 
                        modoEdicion(false);
                        mostrarDatos();
    }

Acciones y eventos en botones:

   private void txtDescripcionKeyReleased(java.awt.event.KeyEvent evt) {                                        
        String z;
        z = this.txtDescripcion.getText();
        this.txtDescripcion.setText(z.toUpperCase());
    }                                        
    private void tablaReferencialMouseClicked(java.awt.event.MouseEvent evt) {                                            
        cargarCuadros();
    }                                          
    private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionAgregar();
    }                                        
    private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionGuardar();
    }                                        
    private void btnCanelarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionCancelar();
    }                                        
    private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        accionModificar();
    }                                          
    private void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        accionEliminar();
    }                                        
    private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        dispose();
    }  

 Acciones

 private void modoEdicion(boolean vL) {
        txtCodigo.setEnabled(vL);
    txtDescripcion.setEnabled(vL);
 
    tablaReferencial.setEnabled(!vL);
 
    btnAgregar.setEnabled(!vL);
    btnGuardar.setEnabled(vL);
    btnCanelar.setEnabled(vL);
    btnModificar.setEnabled(!vL);
    btnEliminar.setEnabled(!vL);
    btnCerrar.setEnabled(!vL);
    }
    private void mostrarDatos() {
        mitabla.setRowCount(0);
sentencia = "SELECT * FROM "+TablaN +"  ORDER BY "+CampoId+" ";
        try {
            resultado = ejecutar.executeQuery(sentencia);
         
            while(resultado.next()){
                Object[] fila=new Object[2]; //definimos un arreglo de 3
                fila[0] = resultado.getObject(1);
                fila[1] = resultado.getObject(2);
                             
                //asignar a tabla abstracta
                mitabla.addRow(fila);
            }
         
                //asignar modelo a tabla(objeto)
                tablaReferencial.setModel(mitabla);
        } catch (SQLException ex) {
            Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
         
        }
    }
    private void accionAgregar() {
                 //Obtener valor maximo
        sentencia = ("SELECT MAX(" + CampoId + ") FROM " + TablaN);
        //sentencia = "SELECT MAX(idbarrios) FROM barrios";
        try {
            //ejecuta la consulta
            resultado = ejecutar.executeQuery(sentencia);
            //posicionamos al primer registro
            resultado.next();
            //obtenemos el valor entero del resultado
            int xid = resultado.getInt(1);
            //aumentar en 1
            xid++;
            //Asignar al cuadro codigo
            txtCodigo.setText(Integer.toString(xid));
            //Activar modo edicion (v)
            modoEdicion(true);
            //Enviar enfoque a Descripcion
            txtDescripcion.grabFocus();
            operacion = 'A';//Indica que estamos agregando registro
         
        } catch (SQLException ex) {
            Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    private void accionGuardar() {
          //Obtener valores de cuadros en variables
        String v1 = txtCodigo.getText();
        String v2 = txtDescripcion.getText();
        //validar los datos
         if(txtDescripcion.getText().isEmpty()){
            JOptionPane.showMessageDialog(this,"No se puede dejar en blanco");
            txtDescripcion.grabFocus();
         }
        else{
        //sentencia de almacenamiento
        if(operacion=='A'){
             sentencia = "INSERT INTO  " + TablaN + "  VALUES('"+v1+"','"+v2+"')";
        }else{
            sentencia = "UPDATE " + TablaN + "  SET  " + CampoDes +"='"+v2+"' WHERE  " + CampoId + "='"+v1+"'";
        }
     
        try {
            ejecutar.executeUpdate(sentencia);
     
     
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this,"Error al almacenar\n"+ex);
            //Logger.getLogger(frmCargos.class.getName()).log(Level.SEVERE, null, ex);
        }
        //limpiar cuadros y modo edicion a falso
        limpiarCuadros();
        modoEdicion(false);
        mostrarDatos();
    }
    }
    private void accionCancelar() {
            limpiarCuadros();
        modoEdicion(false);
    }
    private void accionModificar() {
      if(!txtDescripcion.getText().isEmpty()){
            modoEdicion(true);
            operacion = 'M';//indicamos la modificacion de registros
            txtDescripcion.grabFocus();
         
        }else{
            JOptionPane.showMessageDialog(this,"Haga clic en el registro que desee modificar",
                    "Seleccione un estado",JOptionPane.WARNING_MESSAGE);
        }
    }
    private void accionEliminar() {
                if(!txtDescripcion.getText().isEmpty()){
            //obtenemos el id del barrio
            String xid = txtCodigo.getText();
            sentencia = "DELETE FROM " + TablaN + " WHERE " + CampoId + "='"+xid+"'";
            //  sentencia = "DELETE FROM barrios WHERE idbarrios='"+xid+"'";
            int resp = JOptionPane.showConfirmDialog(this,"Confirma la eliminacion del registro?",
                    "Confirme",JOptionPane.YES_NO_OPTION);
            if(resp==JOptionPane.YES_OPTION){
                try {
                    ejecutar.executeUpdate(sentencia);
                } catch (SQLException ex) {
                    Logger.getLogger(frmReferencial.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
         
        }else{
            JOptionPane.showMessageDialog(this,"Haga clic en el registro que desee Eliminar",
                    "Seleccione un estado",JOptionPane.WARNING_MESSAGE);
        }
        mostrarDatos();
        limpiarCuadros();
    }
    private void limpiarCuadros() {
        txtCodigo.setText(null);
        txtDescripcion.setText(null);
    }
    private void cargarCuadros() {
             int nroFila;
        nroFila = tablaReferencial.getSelectedRow();
        if (nroFila>=0){
            //asignamos los valores a los cuadros
            txtCodigo.setText(tablaReferencial.getValueAt(nroFila, 0).toString());
            txtDescripcion.setText(tablaReferencial.getValueAt(nroFila,1).toString());
        }
    }

No hay comentarios: