viernes, 4 de diciembre de 2015

Proyecto completo en Java netbeans - Tpv Free


Proyecto completo en Java netbeans - Tpv Free 2.016
Informes, Formularios, Base de datos y la librerías necesarias para utilizar y ejecutar el proyecto.

Este proyecto esta preparado para manejar las compras, ventas y las existencias de mercaderías, cuenta también con la opción de facturación del IVA del 5% y 10%.



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());
        }
    }

Insetar imagenes en Jframe y JDialog NetBeans

La forma mas fácil de insertar una imagen en formulario y botones en NetBeans con jLabel.


6.- Tutorial Java Netbeans - Crear formulario de Acceso al sistema

Crear un formulario para acceder al sistema, este es un formulario del tipo Jframe donde solicitamos un usuario y la contraseña que se verifica en la base de datos para acceder al sistema.


Importaciones:


package Prgs;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import java.sql.ResultSet;
import java.sql.Statement;
import Formularios.Principal;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;

Varios en el principal:


public class frmInicio extends javax.swing.JFrame {
    Conexion nCon; //Conexion de la base de datos
    public static String idusers; //varialbe para id userario en fomularios
    private static String ClaveUsuario;
    private static int intento;
    String sentencia,ClaveUsuarios;
    Statement ejecutar;//variable para ejecucion de sentencias
    ResultSet resultado;//variable para almacenar resultado de consultas


Configuraciones iniciales:


 public frmInicio() {
        try {
            initComponents();
            ejecutar = Conexion.getConexion().createStatement();
         
            this.setLocationRelativeTo(null);
            this.setResizable(false);
        } catch (SQLException ex) {
            Logger.getLogger(frmInicio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Botones y cuadros de texto:
    private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {                                      
        dispose();
    }                                      
    private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {                                        
        accionAceptar();
    }                                        
    private void txtNombreKeyPressed(java.awt.event.KeyEvent evt) {                                  
        if (evt.getKeyCode()==KeyEvent.VK_ENTER)
        traeruser();
    }   
 private void txtClaveKeyPressed(java.awt.event.KeyEvent evt) {                                  
       if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
  accionAceptar();
       }
    }    

Acciones o eventos: 


    private void traeruser() {
            String xAlias = txtNombre.getText();
             resultado=null;
            String consulta = "SELECT * FROM usuarios WHERE nombre='"+xAlias+"'";
        try {
            resultado = ejecutar.executeQuery(consulta);
            resultado.next();
            String xidU = resultado.getObject(1).toString();
            String xnoU = resultado.getObject(3).toString();
            ClaveUsuarios = resultado.getObject(4).toString();
            ClaveUsuarios = ClaveUsuarios.trim();
            txtNombre.setText(xnoU);
            txtClave.grabFocus();
            idusers= resultado.getObject(1).toString();
            } catch (SQLException e) {
          JOptionPane.showMessageDialog(null, "Error en la consulta"+e);
        }
    }
    private void accionAceptar() {
          if (intento<3 br="">                String clave = txtClave.getText();
          if (clave.equals(ClaveUsuarios)) {
                Principal Principal = new Principal();
                Principal.txtusuario.setText(idusers);
                Principal.txtnombreuse.setText(txtNombre.getText());
                Principal.setVisible(true);
                dispose();
            } else {
                    JOptionPane.showMessageDialog(null, "La Clave ingresada no coincide con el registro del Usuario",
                "Error de Clave",JOptionPane.ERROR_MESSAGE);
            intento++;
            txtClave.setText(null);
            txtClave.grabFocus();
            //frmPermiso.txtusers.setText(idusers);
}
} else {
        JOptionPane.showMessageDialog(null, "Ha llegado al límite de intentos (3)","Sin acceso",JOptionPane.ERROR_MESSAGE);
        System.exit(0);
}
    }