jueves, 29 de septiembre de 2016

004 Heuristicas para ListBox

1.- En la clase MateriaVo.java

1.1.- Agregar los constructores siguientes:
public MateriaVo(){

}

public MateriaVo(int clavemate,String nombremateria,String fechaalta, int seriadanum,int consseriadanum,boolean status) {
        this. clavemate= clavemate;
        this. nombremateria= nombremateria;
        //this. fechaalta= fechaalta;
        this. seriadanum= seriadanum;
        this. consseriadanum= consseriadanum;   
        this.status = status;
  }

1.2.- Agregar si no existe un metodo toString():

            public String toString(){
                        return nombreMateria;
            }


2- En MateriaDAO.java agregar el metodo modeloLista(). "Retorna un tipo DefaultListModel"
    public DefaultListModel modeloLista(){
             MateriaVo mate;
             DefaultListModel model = new DefaultListModel();       
            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.setSeriadanum(miTabla.getInt(4));
              mate.setConsseriadanum(miTabla.getInt(5));
            mate.setStatus(miTabla.getBoolean(6));
              model.addElement(mate);  
            }                      
              }catch(SQLException ex){
            JOptionPane.showMessageDialog(null,"No se encontro el Driver jdbc instalado" + ex.getMessage(),"ERROR DE CONEXION",JOptionPane.ERROR_MESSAGE);
            }                          
      return model;
  }


3.- Agregar  controles en la clase formulario MateriaFrm.java:

3.1.- Declarar los controles y el modelo a usar
DefaultListModel modelList = new DefaultListModel();
                         private JList<String> jListMateria;
                         private JScrollPane jScrollPane1;
                         private JLabel jlSeleccion;

3.2.- Declarar la librería:
import javax.swing.DefaultListModel;

3.3.- Inicializar los controles en el metodo initComponents():

                                jListMateria = new javax.swing.JList<>();
                        jScrollPane1 = new javax.swing.JScrollPane(); 
                        jlSeleccion = new JLabel();
                        jlSeleccion.setBounds(500,180,150,20);
                        jp.add(jlSeleccion);
           
                        jScrollPane1.setViewportView(jListMateria);       
                         jScrollPane1.setBounds(500, 210, 250, 250);
                         jp.add(jScrollPane1);




            3.4.- Agregar el llenado de el ListBox en el constructor MateriaFrm()
                         MateriaDAO ObjMat= new MateriaDAO();
                         modelList=ObjMat.modeloLista();
                         this.jListMateria.setModel(modelList);

3.5.-Para obtener los valores que guarda el jListBox( en su evento ValueChanged)


3.5.1 Agregar el metodo anonimo dentro del metodo initComponents():

                        jListMateria.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
                        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                                     jListMateriaValueChanged(evt);
                          }
                         });

3.5.2 Agregar el metodo jListMateriaValueChanged ():

                 private void jListMateriaValueChanged(javax.swing.event.ListSelectionEvent evt)                
                 {                                         
                         int indice = jListMateria.getSelectedIndex();
                        MateriaVo ma2 = (MateriaVo)modelList.getElementAt(indice);
jlSeleccion.setText( ma2.getClavemate()+ "  "+ ma2.getNombremateria() +"  "+ ma2.getSeriadanum()
+ " "+ ma2.getConsseriadanum());             
                 }




COMPILAR Y CORRER




NOTA:


Otra forma de llenar el ListBox con objetos de datos fijos:

    public void ListaLlena(){
        MateriaVo ObjMateria;
        ObjMateria= new MateriaVo(100,"Matematicas","01-01-2016", 1,1,true);
        modelList.addElement(ObjMateria);
        ObjMateria= new MateriaVo(200,"Redes","02-02-2016", 1,1,true);
        modelList.addElement(ObjMateria);
        ObjMateria= new MateriaVo(300,"Informatica","03-03-2016", 1,1,true);
        modelList.addElement(ObjMateria);                 
    }

-----------------------------------------0--0-------------------------------
-------------------------------------000—000----------------------------

                  Documentar las heuristicas del List