jueves, 22 de septiembre de 2016

Actividad 003: Crear el ambiente para probar la heuristica de un JComboBox:
Ing. Honoria Reyes Macedo



1.-   Crear una clase CalificaVo.java   que tiene los datos de la entidad califica y generar sus get y set:


public class CalificaVo {
   
private int claveCalifica;
private int clavemate;
private int cvePersona;
private double calificacion;
private String Descripcion;
private String fecha_Calif;
private int status;
private String ciclo;

    public CalificaVo() {
        this.claveCalifica = 0;
        this.clavemate = 0;
        this.cvePersona = 0;
        this.calificacion = 0.0;
        this.Descripcion = "";
        this.fecha_Calif = "";
        this.status = 0;
        this.ciclo="";
    }
    public int getClaveCalifica() {  return claveCalifica;    }
    public void setClaveCalifica(int claveCalifica){this.claveCalifica = claveCalifica;}
    public int getClavemate() {        return clavemate;    }
    public void setClavemate(int clavemate) {  this.clavemate = clavemate;  }
    public int getCvePersona() {        return cvePersona;    }
    public void setCvePersona(int cvePersona) {  this.cvePersona = cvePersona;  }
   
    public double getCalificacion() {     return calificacion;   }
    public void setCalificacion(double calificacion){ this.calificacion = calificacion;}
    public String getDescripcion() {    return Descripcion;    }
    public void setDescripcion(String Descripcion){this.Descripcion = Descripcion; }
    public String getFecha_Calif() {   return fecha_Calif;    }
    public void setFecha_Calif(String fecha_Calif){ this.fecha_Calif = fecha_Calif; }
    public int getStatus() {   return status;    }
    public void setStatus(int status) {     this.status = status;    }   
    public String getCiclo() {    return ciclo;    }
    public void setCiclo(String ciclo){this.ciclo = ciclo; }       
   
}
 





2.- Crear una clase para el formulario CalificaFrm.java :

import java.text.SimpleDateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import images.ImagenPanel;
import javax.swing.ImageIcon;

public class CalificaFrm extends JFrame {
  
    MateriaDAO ObjMat= new MateriaDAO();
    DefaultComboBoxModel mdlCombo;
    Vector<MateriaVo> ListM= new Vector<MateriaVo>();
    Date actualDate;

    public CalificaFrm() {
        initComponents();
                //Llena fecha actual
        actualDate= new Date();
        SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
        jTextFFechaAlta.setText(formato.format(actualDate));
                //Llenar el comboBox
        ListM=ObjMat.ConsultaIndiv();     //se llena con un vector que regresa ConsultaIndiv()   
        mdlCombo = new  DefaultComboBoxModel(ListM);
        this.jComboBMateria.setModel(mdlCombo);
    }

    @SuppressWarnings("unchecked")
                       
    private void initComponents() {
                        //Establecer el fondo
        ImageIcon miImg= new ImageIcon(getClass().getResource("images/fondo.png"));      
        ImagenPanel jp = new ImagenPanel(miImg.getImage());        

        //jp = new javax.swing.JPanel();
        jComboBMateria = new javax.swing.JComboBox<>();
        jlblStatus = new javax.swing.JLabel();
        jTextFFechaAlta = new javax.swing.JTextField();
        jlblCalif = new javax.swing.JLabel();
        jTextFCallif001 = new javax.swing.JTextField();
        jTextFCvePers = new javax.swing.JTextField();
        jlblCvePersona = new javax.swing.JLabel();
        jlblDesc = new javax.swing.JLabel();
        jlblFechaAlta = new javax.swing.JLabel();
        checkbStatus = new javax.swing.JCheckBox();
        jlblMateria = new javax.swing.JLabel();
        jBtnGuardar = new javax.swing.JButton();
        jComboBDesc = new javax.swing.JComboBox<>();
        jlblCiclo = new javax.swing.JLabel();
        jTextFCiclo = new javax.swing.JTextField();
        jBtnSalir = new javax.swing.JButton();
        jSeparator1 = new javax.swing.JSeparator();
        JTBar= new JToolBar();      

        getContentPane().setLayout(null);

       // jp.setLayout(null);
     
        jlblCvePersona.setText("Cve Persona:");
        jp.add(jlblCvePersona);
        jlblCvePersona.setBounds(10, 200, 70, 20);     

        jTextFCvePers.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFCvePersActionPerformed(evt);
            }
        });
        jp.add(jTextFCvePers);
        jTextFCvePers.setBounds(100, 200, 140, 30);
      
        jlblMateria.setText("Materia:");
        jp.add(jlblMateria);
        jlblMateria.setBounds(10, 250, 50, 20);      

        jp.add(jComboBMateria);
        jComboBMateria.setBounds(100, 250, 280, 30);              
      
        jlblCalif.setText("Calificacion:");
        jp.add(jlblCalif);
        jlblCalif.setBounds(10, 310, 70, 20);                        
          
        jp.add(jTextFCallif001);
        jTextFCallif001.setBounds(100, 310, 140, 30);    
          
        jComboBDesc.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "1ER PARCIAL", "2DO PARCIAL", "3ER PARCIAL" }));
        jp.add(jComboBDesc);
        jComboBDesc.setBounds(260, 310, 150, 30);            
          
        jlblDesc.setText("(Descripcion)");
        jp.add(jlblDesc);
        jlblDesc.setBounds(300, 340, 70, 20);      
          
        jlblCiclo.setText("Ciclo:");
        jp.add(jlblCiclo);
        jlblCiclo.setBounds(10, 390, 50, 20);
        jp.add(jTextFCiclo);
        jTextFCiclo.setBounds(100, 390, 160, 30);          
                      
        jp.add(jTextFFechaAlta);
        jTextFFechaAlta.setBounds(100, 440, 160, 30);
      
        jlblFechaAlta.setText(" Fecha Alta:");
        jp.add(jlblFechaAlta);
        jlblFechaAlta.setBounds(10, 440, 58, 20);      

        jlblStatus.setText("Estatus:");
        jp.add(jlblStatus);
        jlblStatus.setBounds(10, 490, 40, 20);
      
        checkbStatus.setText("Activo");
        jp.add(checkbStatus);
        checkbStatus.setBounds(100, 490, 81, 23);
     
        jp.add(jSeparator1);
        jSeparator1.setBounds(0, 550, 620, 10);

        jBtnGuardar.setText("Guardar");
        jBtnGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnGuardarActionPerformed(evt);
            }
        });
       jBtnGuardar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);

       jBtnSalir.setText("Salir");
       jBtnSalir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
       jBtnSalir.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
              
        JTBar.setBounds(10,130,200,35);
        JTBar.setBackground(new Color(191,191,191));
        JTBar.setRollover(true);
      
        sepat=new JToolBar.Separator();
      
        JTBar.add(jBtnGuardar);      
        JTBar.add(sepat);
        JTBar.add(jBtnSalir);
        jp.add(JTBar);

        getContentPane().add(jp);
        setSize(1200,700);
        setLocationRelativeTo(null);
        setVisible(true);     

    }// </editor-fold>                                                                  

    private void jBtnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
    }                                                                                                                              

    // Variables declaration - do not modify                   
    private javax.swing.JCheckBox checkbStatus;
    private javax.swing.JButton jBtnGuardar;
    private javax.swing.JButton jBtnSalir;
    private javax.swing.JComboBox<String> jComboBMateria;
    private javax.swing.JComboBox<String> jComboBDesc;
  //  private javax.swing.JPanel jp;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JTextField jTextFCallif001;
    private javax.swing.JTextField jTextFCiclo;
    private javax.swing.JTextField jTextFCvePers;
    private javax.swing.JTextField jTextFFechaAlta;
    private javax.swing.JLabel jlblCalif;
    private javax.swing.JLabel jlblCiclo;
    private javax.swing.JLabel jlblCvePersona;
    private javax.swing.JLabel jlblDesc;
    private javax.swing.JLabel jlblFechaAlta;
    private javax.swing.JLabel jlblMateria;
    private javax.swing.JLabel jlblStatus;
    private JToolBar JTBar;
      private javax.swing.JToolBar.Separator sepat;      
}


 2.1 Verificar que en la clase MateriaDAO.java exista el metodo ConsultaIndiv() para llenar el combo:


   public Vector<MateriaVo> ConsultaIndiv(){ 
  MateriaVo mate;
        Vector<MateriaVo> ListMateria= new Vector<MateriaVo>();              
  try{       
String miConsulta="Select clavemate,nombreMateria,fechaAlta,seriadaNum,consSeriadaNum,status from materia ";
miInstruccionPrep= miConexion.prepareStatement(miConsulta);
miTabla= miInstruccionPrep.executeQuery();
while(miTabla.next()){
                        mate = new MateriaVo();
mate.setClavemate(miTabla.getInt(1));                    
mate.setNombremateria(miTabla.getString(2));
// mate.setFechaalta(toString(miTabla.getString(3)));
mate.setSeriadanum(miTabla.getInt(4));
            mate.setConsseriadanum(miTabla.getInt(5));
mate.setStatus(miTabla.getBoolean(6));
            ListMateria.add(mate);   
  }
    }catch(SQLException ex){
  JOptionPane.showMessageDialog(null,"No se encontro el Driver jdbc instalado" + ex.getMessage(),"ERROR DE CONEXION",JOptionPane.ERROR_MESSAGE);
  }
    return ListMateria;
  }



3.-   Crear una clase CalificaDAO.java  para guardar en la Base de Datos
import java.sql.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JOptionPane;

public class CalificaDAO {
  Conexion ObjConecta = new Conexion();
  Connection miConexion=null;   // Canal de conexion
  ResultSet miTabla=null;   //Guarda informacion de las columnas(campos)
  Statement miInstruccion=null;    //Ejecuta sentencias SQL sin parametros
  PreparedStatement  miInstruccionPrep=null;  //Ejecuta sentencias SQL con parametros de entrada
  int miResultado;

  public CalificaDAO() {
      try{
         miConexion=ObjConecta.getConexion();
      }catch(Exception ex){
          JOptionPane.showMessageDialog(null,"No se conecto a la Base de Datos: " + ex.getMessage(),"ERROR DE CONEXION",JOptionPane.ERROR_MESSAGE);     
      }
  }
   
   
     public void InsertaCalif(CalificaVo ObjCal){
      try{
        String miInsercion="Insert into califica(clavemate,claveCalifica,descripcion,calificacion,fecha_Calif,status,cvePersona,ciclo) values(?,?,?,?,?,?,?,?)";
        miInstruccionPrep= miConexion.prepareStatement(miInsercion);                   
       
                    miInstruccionPrep.setInt(1,ObjCal.getClavemat());
                    miInstruccionPrep.setInt(2,ObjCal.getClaveCalifica());
                    miInstruccionPrep.setString(3,ObjCal.getDescripcion());
                    miInstruccionPrep.setDouble(4,ObjCal.getCalificacion());
                    miInstruccionPrep.setString(5,ObjCal.getFecha_Calif());
                    miInstruccionPrep.setInt(6,ObjCal.getStatus());
                    miInstruccionPrep.setInt(7,ObjCal.getCvePersona());
                    miInstruccionPrep.setString(8,ObjCal.getCiclo());
                    miInstruccionPrep.executeUpdate();               
                }
      catch(SQLException ex){
          JOptionPane.showMessageDialog(null,"No se encontro el Driver jdbc instalado" + ex.getMessage(),"ERROR DE CONEXION",JOptionPane.ERROR_MESSAGE);
    }       
}
}



4.- Agregar la linea siguiente  en MateriaVo.java (es necesaria para llenar el combo con el nombre de la materia)

public String toString(){      return nombremateria;    }   

5.- Agregar la ejecucion del formulario creado en el Menu de inicio

        new CalificaFrm().setVisible(true);

6.-   Compilar y ejecutar



7.-   Agregar el metodo guardar() a la clase CalificaFrm.java y llamarlo desde el boton Guardar


        public void  guardar(){                       
       CalificaVo ObjCa=new CalificaVo();
        ObjCa.setCvePersona(Integer.parseInt(jTextFCvePers.getText()));       
        MateriaVo ma=(MateriaVo)this.jComboBMateria.getSelectedItem();
        ObjCa.setClavemate(ma.getClavemate());       
        ObjCa.setCalificacion(Double.parseDouble(jTextFCallif001.getText()));
        ObjCa.setDescripcion(jComboBDesc.getSelectedItem().toString());
        ObjCa.setCiclo(jTextFCiclo.getText());
        try{                                  
            SimpleDateFormat inputFormat = new SimpleDateFormat ("dd-MM-yyyy");
            SimpleDateFormat outputFormat = new SimpleDateFormat ("yyyy-MM-dd");
            ObjCa.setFecha_Calif( outputFormat.format(inputFormat.parse(jTextFFechaAlta.getText())));
        }catch (Exception e){   
                       System.out.println (e.getMessage());
                       e.printStackTrace();
        }                  
         ObjCa.setStatus(0);
        if (checkbStatus.isSelected())  ObjCa.setStatus(1);                 
        CalificaDAO ObjDAO=new CalificaDAO();   
        ObjDAO.InsertaCalif(ObjCa);
    }

8.-   Compilar y ejecutar
 


                                                                o  o
-------------------------------------------000---000---------------------------------------------- 




No hay comentarios.:

Publicar un comentario