Programación 2

Temario

Descarga
Programación II.pdf
Documento Adobe Acrobat 163.5 KB

Criterios de evaluación

Examen 25%

Actividades 30%

Prácticas 45%

Competencia general de la materia:

Aplica tecnologías y herramientas actuales y emergentes de programación para desarrollar

sistemas de información que ofrezcan soluciones a problemas del entorno.

 


Unidad 1. Fundamentos del lenguaje

Competencia específica de la unidad:

Identifica y aplica la sintaxis y estructuras básicas del lenguaje de programación para familiarizase con el entorno del lenguaje.

 

Semana 1..............................

Actividad 1. Completar el cuestionario de clase (se agregaron preguntas). Revisado el 31 de enero.

 

Descarga
Cuestionario1.pdf
Documento Adobe Acrobat 175.4 KB

 

Semana 2..............................

Prácticas 1 y 2. Probar el funcionamiento de dos códigos analizados en clase: Realizado en clases de la semana 2. Entregar el 6/02/2017 reporte en digital vía correo electrónico (portada, introducción, desarrollo de la práctica y conclusiones).

  • Uso de herencia simple: Implementar las clases CCuenta, CCuentaAhorro y mostrar la forma en cómo se utiliza la herencia con Java.
  • Uso de sobrecarga de métodos: Sobrecargar métodos para probar el uso de la sobrecarga de métodos (sobre la función polinomio x^2 + 2x+3, misma que pueda utilizarse para valores de x enteros, flotantes y dobles).

Actividad 3. Investigar qué es la programación orientada a eventos usando Netbeans, y crear una tabla con los nombres de los eventos que más se utilizan y sus correspondientes descripciones. Revisado el 31 enero.

 

Práctica 3. Implementar las clases Animal, Oviparos y Mamiferos. Usar herencia simple. Las clases Oviparos y Mamiferos heredan de la clase Animal. Crear 4 objetos, 2 de la clase Oviparos y 2 de la clase Mamiferos dentro de una cuarta clase llamada Principal, misma que contiene el método main. Entregar vía correo electrónico el 9 de febrero.

El reporte de la práctica debe incluir al menos los siguientes puntos:

  • Portada con el nombre de la práctica 3. Uso de herencia simple - clase animal.
  • Crear un esquema en donde incluyan las características de los elementos de cada clase, y donde se visualicen los atributos de cada una y la forma en cómo se implementará la herencia.
  • Presentar cada una de las clases comenzando por la clase padre o superclase llamada Animal. Describir sus atributos, constructor y métodos definidos (no es necesario poner todos los métodos, basta con describir de forma general para que se utilizan).
  • Mostrar la forma en cómo se crean los objetos de las dos clases hijas (Oviparos y Mamiferos)
  • Pruebas de funcionamiento.
  • Conclusiones.

******************************** Examen el día 21 de febrero en laboratorio **********************************


Unidad 2. Controles, eventos y métodos básicos

Competencias específicas:

Manipula los controles y componentes estándar definidos en el lenguaje para el desarrollo de aplicaciones.

 

Competencias genéricas:

  • Solución de problemas
  • Capacidad crítica y autocrítica
  • Trabajo en equipo
  • Habilidades interpersonales.
  • Capacidad de aplicar los conocimientos en la práctica
  • Capacidad de generar nuevas ideas (creatividad)

Actividad 1. Manejo de eventos del teclado. Uso del evento onKeyPressed y onKeyReleased.

Actividad 2. Manejo de eventos del clic usando un ActionListener y asociando el Listener con los botones requeridos. La aplicación invoca con el ActionListener el evento ActionPerformed de todos los botones asociados.

Tarea 1. Investigar el funcionamiento de: ComboBox, CheckBox, RadioButton. Identificar lo siguiente: cómo se utilizan y cómo se valida que el elemento fue o no seleccionado. Revisada el 1 de marzo.

Tarea 2. Investigar cuál es el código que se requiere para insertar cajas de diálogo de: error, entrada de texto, confirmación. Revisado el 7 de marzo.

Practica 1 . Cajas de diálogo (informativa, precaución, error, pregunta, de entrada).

Práctica 2. Uso de menús.

Práctica 3. Diseñar la interfaz que se solicitó en clase para obtener el total de una cuenta según los valores que haya seleccionado el usuario. Por revisar el 15 de marzo.

Rubrica de evaluación de la práctica:

  • El diseño de la interfaz es claro y ordenado. 10 puntos.
  • El programa indica el tipo de café que seleccionó el usuario y calcula su precio (usando radio buttons y un button group). 10 puntos.
  • El programa evalúa el tipo de vaso que seleccionó el usuario y agrega el costo adicional al valor del café seleccionado (usando radio buttons y un button group). 10 puntos.
  • El usuario puede seleccionar a través de check boxes el tipo de postre que guste, y en función de la selección puede o no aparecer una caja de diálogo que le permita seleccionar el tipo de postre que desea comprar. 15 puntos.
  • El usuario puede seleccionar un complemento de la sección "para compartir" y de igual manera, el programa deberá mostrar las opciones de selección según una caja de diálogo que permita seleccionar el producto. 15 puntos.
  • Debe tener un menú en la parte superior izquierda de la pantalla que permita:
    • Calcular el total: El total deberá mostrarse haciendo uso de una caja de diálogo en la cual el icono no estará predefinido, es decir, deberá ser diseñado por los estudiantes. Además, la forma en cómo deberán demostrar que el programa funciona consiste en crear un texto que incluya la descripción de cada uno de los productos que seleccionó el usuario y del costo de cada uno (similar a una nota de consumo), desplegar dicho valor en alguna parte de la interfaz o a través de una caja de diálogo. 30 puntos.
    • Limpiar la selección. 5 puntos.
    • Salir de la aplicación. 5 puntos
  • El manejo de Action Listener se contabilizará como puntos adicionales +10 puntos por Listener.
  • La reutilización de código será considerada +5 puntos por método.
  • Entregar el reporte de la práctica vía correo electrónico a más tardar el 15 de marzo.

Unidad 3. Acceso a datos

y Unidad 4. Generación de reportes

Competencias específicas:

Aplica los principales controles y herramientas para el acceso y manipulación de las bases de datos.

 

Competencias genéricas:

  • Solución de problemas
  • Capacidad crítica y autocrítica
  • Trabajo en equipo
  • Habilidades interpersonales.
  • Capacidad de aplicar los conocimientos en la práctica
  • Capacidad de generar nuevas ideas (creatividad)

Práctica 1. Acceso a una base de datos MySQL desde NetBeans para implementar su CRUD (create, read, update y delete). 

  1. Diseño de la base de datos empleado usando phpMyAdmin (contiene una sola tabla llamada datos_personales).
  2. Diseño de la interfaz de usuario desde NetBeans.
  3. Conexión con la base de datos desde NetBeans.
  4. Implementación del método para seleccionar, insertar y modificar datos de la base de datos.
  5. Despliegue de información a través de una tabla en NetBeans.
  6. Obtener un reporte en forma de pdf de los datos usando JasperReports. (unidad 4)

Solución práctica 1: Código fuente de la clase principal de la práctica 1 (para que cotejen el porqué no los deja insertar después de modificar registros). Actualizado: 11/05/2017.

 

/*

 * To change this license header, choose License Headers in Project Properties.

 * To change this template file, choose Tools | Templates

 * and open the template in the editor.

 */

package vistas;

import BaseDatos.ConexionBaseDatos;

import java.sql.*;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.view.JasperViewer;

 

//import net.sf.jasperreports.view.*;

//import net.sf.jasperreports.engine.*;

 

/**

 *

 * @author Meee

 */

 

public class DatosEmpleados extends javax.swing.JFrame {

 

DefaultTableModel modelo;

    /**

     * Creates new form DatosEmpleados

     */

    public DatosEmpleados() {

        initComponents();

        CargarTablaEmpleados("");

        cboGenero.addItem("M");

        cboGenero.addItem("F");

        inhabilitar();

    }

    //String setMode="";

    void CargarTablaEmpleados(String valor){

        String[] titulos = {"ID", "P. APELLIDO", "S. APELLIDO", "P. NOMBRE", "S. NOMBRE", "FECHA_NACIMIENTO", "GENERO"};

        String[] registro = new String [7];

        String sSQL = "";

        modelo = new DefaultTableModel (null, titulos);

        

        ConexionBaseDatos mysql = new ConexionBaseDatos();

        Connection cn=mysql.Conectar();

        sSQL = "SELECT id_emp, apellido1, apellido2, nombre1, nombre2, fecha_nac, genero FROM datos_personales " +

               "WHERE CONCAT(apellido1,' ',apellido2,' ',nombre1,' ',nombre2,' ') LIKE '%" + valor + "%'";

        

    try {

        

        Statement st = cn.createStatement();

        ResultSet rs = st.executeQuery(sSQL);

        

        while (rs.next()){

            registro[0] = rs.getString ("id_emp");

            registro[1] = rs.getString ("apellido1");

            registro[2] = rs.getString ("apellido2");

            registro[3] = rs.getString ("nombre1");

            registro[4] = rs.getString ("nombre2");

            registro[5] = rs.getString ("fecha_nac");

            registro[6] = rs.getString ("genero");

            

            modelo.addRow(registro);

            

        }

       tblConsultaEmpleado.setModel(modelo);

        

    } catch (SQLException ex) {

        JOptionPane.showMessageDialog(null, ex);

    }

        

        

    }

    String id_actualizar="";

    void BuscarEmpleadoEditar(String id){

       

        String sSQL = "";

        String ap1="", ap2="", nom1="", nom2="", fn="", gen="";

        

        ConexionBaseDatos mysql = new ConexionBaseDatos();

        Connection cn=mysql.Conectar();

        sSQL = "SELECT id_emp, apellido1, apellido2, nombre1, nombre2, fecha_nac, genero FROM datos_personales " 

                + "WHERE id_emp="+id ;

        

    try {

        

        Statement st = cn.createStatement();

        ResultSet rs = st.executeQuery(sSQL);

        

        while (rs.next()){

            

            ap1 = rs.getString ("apellido1");

            ap2 = rs.getString ("apellido2");

            nom1 = rs.getString ("nombre1");

            nom2 = rs.getString ("nombre2");

            fn = rs.getString ("fecha_nac");

            gen = rs.getString ("genero");    

            

        }

        

        txtPrimerApellido.setText(ap1);

        txtSegundoApellido.setText(ap2);

        txtPrimerNombre.setText(nom1);

        txtSegundoNombre.setText(nom2);

        txtFechaNac.setText(fn);

        

        id_actualizar=id; 

        

    } catch (SQLException ex) {

        JOptionPane.showMessageDialog(null, ex);

    }

        

        

    }

    

    void habilitar(){

        

        txtPrimerApellido.setEnabled(true);

        txtSegundoApellido.setEnabled(true);

        txtPrimerNombre.setEnabled(true);

        txtSegundoNombre.setEnabled(true);

        txtFechaNac.setEnabled(true);

        cboGenero.setEnabled(true);

        

        txtPrimerApellido.setText("");

        txtSegundoApellido.setText("");

        txtPrimerNombre.setText("");

        txtSegundoNombre.setText("");

        txtFechaNac.setText("");

        

        btnGuardar.setEnabled(true);

        btnCancelar.setEnabled(true);

        

        txtPrimerApellido.requestFocus();

    }

    

    void inhabilitar(){

        

        txtPrimerApellido.setEnabled(false);

        txtSegundoApellido.setEnabled(false);

        txtPrimerNombre.setEnabled(false);

        txtSegundoNombre.setEnabled(false);

        txtFechaNac.setEnabled(false);

        cboGenero.setEnabled(false);

        

        txtPrimerApellido.setText("");

        txtSegundoApellido.setText("");

        txtPrimerNombre.setText("");

        txtSegundoNombre.setText("");

        txtFechaNac.setText("");

        

        btnGuardar.setEnabled(false);

        btnCancelar.setEnabled(false);

    }

 

    /**

     * This method is called from within the constructor to initialize the form.

     * WARNING: Do NOT modify this code. The content of this method is always

     * regenerated by the Form Editor.

     */

    @SuppressWarnings("unchecked")

    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          

    private void initComponents() {

 

        jPopupMenu1 = new javax.swing.JPopupMenu();

        mnEditar = new javax.swing.JMenuItem();

        jPanel1 = new javax.swing.JPanel();

        jLabel1 = new javax.swing.JLabel();

        txtPrimerApellido = new javax.swing.JTextField();

        jLabel4 = new javax.swing.JLabel();

        txtSegundoApellido = new javax.swing.JTextField();

        jLabel5 = new javax.swing.JLabel();

        txtPrimerNombre = new javax.swing.JTextField();

        jLabel6 = new javax.swing.JLabel();

        txtFechaNac = new javax.swing.JTextField();

        jLabel7 = new javax.swing.JLabel();

        txtBuscar = new javax.swing.JTextField();

        cboGenero = new javax.swing.JComboBox();

        jLabel3 = new javax.swing.JLabel();

        btnNuevo = new javax.swing.JButton();

        btnGuardar = new javax.swing.JButton();

        btnCancelar = new javax.swing.JButton();

        btnSalir = new javax.swing.JButton();

        jPanel2 = new javax.swing.JPanel();

        JScroll = new javax.swing.JScrollPane();

        tblConsultaEmpleado = new javax.swing.JTable();

        jLabel8 = new javax.swing.JLabel();

        btnBuscar = new javax.swing.JButton();

        jLabel2 = new javax.swing.JLabel();

        txtSegundoNombre = new javax.swing.JTextField();

        JLabel = new javax.swing.JLabel();

        jButton1 = new javax.swing.JButton();

 

        mnEditar.setText("MODIFICAR");

        mnEditar.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                mnEditarActionPerformed(evt);

            }

        });

        jPopupMenu1.add(mnEditar);

 

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

 

        jLabel1.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N

        jLabel1.setText("Datos Empleado");

 

        txtPrimerApellido.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                txtPrimerApellidoActionPerformed(evt);

            }

        });

 

        jLabel4.setText("Apellido 2:");

 

        txtSegundoApellido.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                txtSegundoApellidoActionPerformed(evt);

            }

        });

 

        jLabel5.setText("Nombre 1:");

 

        txtPrimerNombre.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                txtPrimerNombreActionPerformed(evt);

            }

        });

 

        jLabel6.setText("Fecha nacimiento");

 

        txtFechaNac.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                txtFechaNacActionPerformed(evt);

            }

        });

 

        jLabel7.setText("Buscar Empleado");

 

        cboGenero.setName(""); // NOI18N

        cboGenero.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                cboGeneroActionPerformed(evt);

            }

        });

 

        jLabel3.setText("Genero");

 

        btnNuevo.setText("Nuevo");

        btnNuevo.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                btnNuevoActionPerformed(evt);

            }

        });

 

        btnGuardar.setText("Guardar");

        btnGuardar.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                btnGuardarActionPerformed(evt);

            }

        });

 

        btnCancelar.setText("Cancelar");

        btnCancelar.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                btnCancelarActionPerformed(evt);

            }

        });

 

        btnSalir.setText("Salir");

        btnSalir.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                btnSalirActionPerformed(evt);

            }

        });

 

        jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));

 

        JScroll.setComponentPopupMenu(jPopupMenu1);

 

        tblConsultaEmpleado.setModel(new javax.swing.table.DefaultTableModel(

            new Object [][] {

                {},

                {},

                {},

                {}

            },

            new String [] {

 

            }

        ));

        tblConsultaEmpleado.setComponentPopupMenu(jPopupMenu1);

        JScroll.setViewportView(tblConsultaEmpleado);

 

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);

        jPanel2.setLayout(jPanel2Layout);

        jPanel2Layout.setHorizontalGroup(

            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(jPanel2Layout.createSequentialGroup()

                .addContainerGap()

                .addComponent(JScroll, javax.swing.GroupLayout.DEFAULT_SIZE, 478, Short.MAX_VALUE)

                .addContainerGap())

        );

        jPanel2Layout.setVerticalGroup(

            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(JScroll, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)

        );

 

        jLabel8.setText("CONSULTAR EMPLEADO");

 

        btnBuscar.setText("BUSCAR");

        btnBuscar.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                btnBuscarActionPerformed(evt);

            }

        });

 

        jLabel2.setText("Nombre 2");

 

        txtSegundoNombre.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                txtSegundoNombreActionPerformed(evt);

            }

        });

 

        JLabel.setText("Apellido 1:");

 

        jButton1.setText("Reporte Jasper");

        jButton1.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                jButton1ActionPerformed(evt);

            }

        });

 

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

        jPanel1.setLayout(jPanel1Layout);

        jPanel1Layout.setHorizontalGroup(

            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(jPanel1Layout.createSequentialGroup()

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)

                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()

                                .addComponent(btnNuevo)

                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                                .addComponent(btnGuardar))

                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()

                                .addContainerGap()

                                .addComponent(jLabel3)

                                .addGap(80, 80, 80)

                                .addComponent(cboGenero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

                            .addComponent(jLabel8)

                            .addComponent(btnCancelar))

                        .addGap(29, 29, 29)

                        .addComponent(btnSalir)

                        .addGap(51, 51, 51)

                        .addComponent(jButton1))

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addContainerGap()

                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addContainerGap()

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addGroup(jPanel1Layout.createSequentialGroup()

                                .addComponent(jLabel7)

                                .addGap(18, 18, 18)

                                .addComponent(txtBuscar, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)

                                .addGap(18, 18, 18)

                                .addComponent(btnBuscar))

                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)

                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()

                                    .addComponent(jLabel6)

                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

                                    .addComponent(txtFechaNac, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))

                                .addGroup(jPanel1Layout.createSequentialGroup()

                                    .addGap(10, 10, 10)

                                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

                                        .addGroup(jPanel1Layout.createSequentialGroup()

                                            .addComponent(JLabel)

                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

                                            .addComponent(txtPrimerApellido, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))

                                        .addGroup(jPanel1Layout.createSequentialGroup()

                                            .addComponent(jLabel4)

                                            .addGap(18, 18, 18)

                                            .addComponent(txtSegundoApellido, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE))

                                        .addGroup(jPanel1Layout.createSequentialGroup()

                                            .addComponent(jLabel2)

                                            .addGap(18, 18, 18)

                                            .addComponent(txtSegundoNombre, javax.swing.GroupLayout.PREFERRED_SIZE, 202, javax.swing.GroupLayout.PREFERRED_SIZE)

                                            .addGap(14, 14, 14))

                                        .addGroup(jPanel1Layout.createSequentialGroup()

                                            .addComponent(jLabel5)

                                            .addGap(18, 18, 18)

                                            .addComponent(txtPrimerNombre, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)))))))

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addGap(120, 120, 120)

                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)))

                .addContainerGap(36, Short.MAX_VALUE))

        );

        jPanel1Layout.setVerticalGroup(

            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(jPanel1Layout.createSequentialGroup()

                .addComponent(jLabel1)

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(txtPrimerApellido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                    .addComponent(JLabel))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel4)

                    .addComponent(txtSegundoApellido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel5)

                    .addComponent(txtPrimerNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel2)

                    .addComponent(txtSegundoNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel6)

                    .addComponent(txtFechaNac, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(jPanel1Layout.createSequentialGroup()

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(cboGenero, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)

                            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING))

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                            .addComponent(btnNuevo)

                            .addComponent(btnGuardar))

                        .addGap(0, 0, Short.MAX_VALUE))

                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()

                        .addGap(0, 27, Short.MAX_VALUE)

                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                            .addComponent(btnCancelar)

                            .addComponent(btnSalir)

                            .addComponent(jButton1))

                        .addGap(18, 18, 18)

                        .addComponent(jLabel8)))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addComponent(jLabel7)

                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                        .addComponent(txtBuscar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                        .addComponent(btnBuscar)))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                .addContainerGap())

        );

 

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setHorizontalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(layout.createSequentialGroup()

                .addGap(30, 30, 30)

                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                .addContainerGap())

        );

        layout.setVerticalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

        );

 

        pack();

    }// </editor-fold>                        

 

    private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {                                         

        // TODO add your handling code here:

        habilitar();

        //accion="Insertar";

    }                                        

 

    private void txtSegundoApellidoActionPerformed(java.awt.event.ActionEvent evt) {                                                   

        // TODO add your handling code here:

        txtSegundoApellido.transferFocus();

    }                                                  

 

    private void cboGeneroActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here:

    }                                         

 

    private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {                                         

        // TODO add your handling code here:

        this.dispose();

    }                                        

 

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                            

        // TODO add your handling code here:

        inhabilitar();

    }                                           

 

    private void txtPrimerApellidoActionPerformed(java.awt.event.ActionEvent evt) {                                                  

        // TODO add your handling code here:

        txtPrimerApellido.transferFocus();

    }                                                 

 

    private void txtPrimerNombreActionPerformed(java.awt.event.ActionEvent evt) {                                                

        // TODO add your handling code here:

        txtPrimerNombre.transferFocus();

    }                                               

 

    private void txtSegundoNombreActionPerformed(java.awt.event.ActionEvent evt) {                                                 

        // TODO add your handling code here:

        txtSegundoNombre.transferFocus();

    }                                                

 

    private void txtFechaNacActionPerformed(java.awt.event.ActionEvent evt) {                                            

        // TODO add your handling code here:

        txtFechaNac.transferFocus();

    }                                           

         String accion ="Insertar";

    private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                           

        // TODO add your handling code here:

        ConexionBaseDatos mysql= new ConexionBaseDatos();

        Connection cn = mysql.Conectar();

        

        String ap1, ap2, nom1, nom2, fn, gen;

        String sSQL=("");

        String mensaje ="";

        ap1=txtPrimerApellido.getText();

        ap2=txtSegundoApellido.getText();

        nom1=txtPrimerNombre.getText();

        nom2=txtSegundoNombre.getText();

        fn=txtFechaNac.getText();

        gen=cboGenero.getSelectedItem().toString();

        

        if(accion.equals("Insertar")){

            sSQL="INSERT INTO datos_personales(apellido1, apellido2, nombre1, nombre2, fecha_nac, genero) "

                + "VALUES (?, ?, ?, ?, ?, ?)";

            mensaje= "los datos se han insertado de manera satisfactoria...";

        }else if(accion.equals("Modificar")){

            sSQL="UPDATE datos_personales " +

                    "SET apellido1 =?," + 

                    "apellido2 = ?," + 

                    "nombre1 = ?," + 

                    "nombre2 = ?," + 

                    "fecha_nac = ?," + 

                    "genero = ? " + 

                    "WHERE id_emp = "+id_actualizar;

        mensaje= "los datos se han Modificado de manera satisfactoria...";

        accion="Insertar";//

        }

        

        try {

            PreparedStatement pst = cn.prepareStatement(sSQL);

            pst.setString(1, ap1);

            pst.setString(2, ap2);

            pst.setString(3, nom1);

            pst.setString(4, nom2);

            pst.setString(5, fn);

            pst.setString(6, gen);

            

            int n= pst.executeUpdate();

            if(n>0)

            {

                JOptionPane.showMessageDialog(null, mensaje);

                CargarTablaEmpleados("");

            }

        } 

        catch (SQLException ex) {

            JOptionPane.showMessageDialog(null, ex);

        }

    }                                          

    

    private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here:

        String valor = txtBuscar.getText();

        CargarTablaEmpleados(valor);

    }                                         

 

    private void mnEditarActionPerformed(java.awt.event.ActionEvent evt) {                                         

        // TODO add your handling code here:

        int filasel;

        String id;

        

        

        try{

           filasel= tblConsultaEmpleado.getSelectedRow(); 

           if(filasel==-1){

                JOptionPane.showMessageDialog(null, "No se ha seleccionado ninguna fila");

                

            }

            else{

                accion="Modificar";

                modelo=(DefaultTableModel)tblConsultaEmpleado.getModel();

                id = (String) modelo.getValueAt(filasel, 0);

                habilitar();

                BuscarEmpleadoEditar(id);

                

                

            }

           

        }

        catch(Exception e){

            

        }

       

    }                                        

 

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        // TODO add your handling code here:

        ConexionBaseDatos mysql= new ConexionBaseDatos();

        Connection cn = mysql.Conectar();

        

        String ruta="C:\\Users\\AcademiaTICS\\Documents\\NetBeansProjects\\empleadosBD Zenteno\\report1.jrxml";

        try{

            JasperReport reporteJasper = JasperCompileManager.compileReport(ruta);

            JasperPrint mostrarReporte = JasperFillManager.fillReport(reporteJasper, null, cn);

            JasperViewer.viewReport(mostrarReporte);

            

        }

        catch(JRException ex){

            Logger.getLogger(DatosEmpleados.class.getName()).log(Level.SEVERE, null,ex);

        }

    }                                        

 

    /**

     * @param args the command line arguments

     */

    public static void main(String args[]) {

        /* Set the Nimbus look and feel */

        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 

         */

        try {

            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

                if ("Nimbus".equals(info.getName())) {

                    javax.swing.UIManager.setLookAndFeel(info.getClassName());

                    break;

                }

            }

        } catch (ClassNotFoundException ex) {

            java.util.logging.Logger.getLogger(DatosEmpleados.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (InstantiationException ex) {

            java.util.logging.Logger.getLogger(DatosEmpleados.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (IllegalAccessException ex) {

            java.util.logging.Logger.getLogger(DatosEmpleados.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (javax.swing.UnsupportedLookAndFeelException ex) {

            java.util.logging.Logger.getLogger(DatosEmpleados.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        }

        //</editor-fold>

 

        /* Create and display the form */

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new DatosEmpleados().setVisible(true);

            }

        });

    }

 

 

    // Variables declaration - do not modify                     

    private javax.swing.JLabel JLabel;

    private javax.swing.JScrollPane JScroll;

    private javax.swing.JButton btnBuscar;

    private javax.swing.JButton btnCancelar;

    private javax.swing.JButton btnGuardar;

    private javax.swing.JButton btnNuevo;

    private javax.swing.JButton btnSalir;

    private javax.swing.JComboBox cboGenero;

    private javax.swing.JButton jButton1;

    private javax.swing.JLabel jLabel1;

    private javax.swing.JLabel jLabel2;

    private javax.swing.JLabel jLabel3;

    private javax.swing.JLabel jLabel4;

    private javax.swing.JLabel jLabel5;

    private javax.swing.JLabel jLabel6;

    private javax.swing.JLabel jLabel7;

    private javax.swing.JLabel jLabel8;

    private javax.swing.JPanel jPanel1;

    private javax.swing.JPanel jPanel2;

    private javax.swing.JPopupMenu jPopupMenu1;

    private javax.swing.JMenuItem mnEditar;

    private javax.swing.JTable tblConsultaEmpleado;

    private javax.swing.JTextField txtBuscar;

    private javax.swing.JTextField txtFechaNac;

    private javax.swing.JTextField txtPrimerApellido;

    private javax.swing.JTextField txtPrimerNombre;

    private javax.swing.JTextField txtSegundoApellido;

    private javax.swing.JTextField txtSegundoNombre;

    // End of variables declaration                   

}

 

Proyecto integrador. Hacer uso de los distintos controles y eventos vistos durante el semestre para implementar una aplicación que permita llevar el control de un negocio.

Características del proyecto:

1. Crear la base de datos llamada clubtepeaca en phpMyAdmin con las siguientes dos tablas:

  • Tabla clientes:
    • id_cliente de tipo entero, auto-incrementable y llave primaria.
    • nombre de tipo varchar 100.
    • apellido1 de tipo varchar 50.
    • apellido2 de tipo varchar 50.
    • fecha_afiliacion de tipo date.
    • direccion de tipo varchar 200.
  • Tabla mensualidades:
    • id_mensualidad de tipo entero, auto-incrementable y llave primaria.
    • id_cliente de tipo entero (la asignación como llave foránea se hará en clase).
    • monto_pago de tipo float
    • fecha_pago de tipo date.

2. Crear una aplicación en NetBeans que restrinja el acceso a través de una ventana de acceso (login), y que únicamente el administrador pueda hacer uso de la misma. Los datos para acceder como usuario administrador al menú principal de la aplicación son: usuario: Administrador, contraseña: abc123.

3. Una vez que el administador ingresó al sistema, se le presentará una pantalla que incluya las siguientes opciones (usando botones o menús): clientes, reportes. Cuando el usuario seleccione alguna de las dos opciones anteriores, el programa lo llevará al JFrameForm solicitado (ver punto 4).

4.En un nuevo JFrameForm crearán la interfaz que permita dar de alta a nuevos clientes, consultarlos, seleccionarlos y actualizar sus datos (igual que en la práctica1). En otro JFrameForm hacer lo mismo pero para la tabla de mensualidades (deberá permitirse el insertar, consultar y modificar datos).

5.Además, el programa deberá permitir crear un reporte en pdf para visualizar la lista de clientes que ya realizaron su pago de mensualidad en el club y con ello validar su acceso al clubTepeaca. Los datos que deberán desplegar en el reporte son: nombre, apellido1, apellido2, fecha de afiliación, fecha de pago, monto pagado. (unidad 4).

 

La entrega del proyecto será para el día 24 de mayo en laboratorio. Pueden trabajar en equipos de 2 personas, preferible si es individual.