UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III CONSTRUCCION DE UN SISTEMA DE APLICACION Introducción Vamos a proceder a crear un sistema de aplicación. En base a los conocimientos adquiridos simularemos un sistema de aplicación. Haremos uso de los objetos aprendidos en las sesiones anteriores como también manejo de atributos y métodos de clases. Además haremos uso de estructuras de datos llamadas arreglos. El caso que trataremos es sobre cuentas de ahorros y CTS de un Banco, y lo desarrollaremos en dos etapas. En este tema haremos la primera etapa y en la última completaremos el desarrollo del caso. Docente: Ing. Mirko Manrique Ronceros Página 1 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III CASO:Banco-Cuentas Un banco ofrece los productos de ahorros en soles, ahorros en dólares, CTS en soles y CTS en dólares. Un cliente puede sólo tener una cuenta de cualquier producto antes mencionado. Observe el siguiente diseño: Para aperturar una cuenta debemos ingresar los apellidos y los nombres del cliente, luego al dar click en un botón de comando Buscar procedemos a la búsqueda de los datos en la estructura de datos o arreglo. Si no se encuentra los datos procedemos a ingresar la dirección y el número de documento de identidad y si existe los datos del cliente, entonces se muestra el número de documento de identidad y el número de tarjeta. El número de tarjeta se inicia con los dígitos 5788 seguido del número del documento de identidad. Cabe señalar si los datos del cliente ya existen se debe inhabilitar el uso de los objetos JRadioButton respecto a las cuentas que ya tiene el cliente. Si es un nuevo cliente se habilitarán todos los objetos referidos a los tipos de cuentas. Una vez indicado los datos procedemos a grabar los datos, lo cual implica Docente: Ing. Mirko Manrique Ronceros Página 2 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III insertar los datos en el objeto Table como también en la estructura de datos o arreglo. El objeto Table se encuentra en la segunda pestaña “Cuentas Aperturadas” del objeto JTabbedPanel. El botón de comando Cancelar es para suspender el proceso de apertura de cuenta haciendo limpiar los objetos de control y el botón de comando Cerrar es para ocultar la ventana. Veamos el diseño del formulario de Operaciones Bancarias que también está conformado por un objeto JTabbedPanel que contine dos Tab, es decir, maneja dos pestañas. La primera pestaña tiene el siguiente diseño: Docente: Ing. Mirko Manrique Ronceros Página 3 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III La segunda pestaña tiene el siguiente diseño: Docente: Ing. Mirko Manrique Ronceros Página 4 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Para las operaciones o transacciones bancarias se inica con ingresar el numero de tarjeta (recordemos que el número de tarjeta se inicia con 5788, seguido del número de documento de identidad). Luego al dar click en el botón de comando Buscar hacemos la búsqueda de la cuenta en el arreglo o estructura de datos. Si encuentra el número de tarjeta procedemos a visualizar los apellidos y nombres del cliente y se habilitan a los objetos JRadioButton de las cuentas que tiene el cliente. Si no se encuentra el número de tarjeta procedemos a mostrar un mensaje de error. A continuación se selecciona una cuenta y el tipo de operación (Retiro o Depósito) e ingresamos el monto de la operación. Al dar click en el botón de comando Procesar grabaremos o insertamos los datos en el objeto Table (objeto que se muestra en la segunda pestaña) y en la estructura de datos o arreglo. Cabe señalar que el uso de los arreglos es para salvar los datos ya que al cerrar la ventana los datos contenidos en el objeto JTable se pierden y cuando se vuelve a mostrar nuevamente la ventana los datos contenidos en los arreglos se llenan en el obejto JTable. Tanto la ventana o formulario de Apertura de Cuentas como la ventana o formulario de Operaciones Bancarias serán invocados o ejecutados desde las opciones de un menú, cuyo diseño es el siguiente: Docente: Ing. Mirko Manrique Ronceros Página 5 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Solución: 1. Creamos un proyecto denominado Caso_banco. Luego estando en el entorno de NetBeans, seleccionamos el paquete caso_banco y dando click botón derecho del mouse, se muestra un menú flotante, donde seleccionamos Formulario JFrame. 2. A continuación, colocaremos como nombre de formulario frmMenu. Luego dar click en el botón de comando Finish (en caso de que la versión de Docente: Ing. Mirko Manrique Ronceros Página 6 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III NetBeans es en castellano entonces dar click en el botón de comando Terminar) 3. Estando en el entorno de desarrollo de NetBeans, en el panel de Inspector seleccionamos JFrame y damos click botón derecho del mouse seleccionamos Agregar desde paleta, luego Swing y posteriormente JmenuBar. 4. Se crea una barra de Menú con una primera opción del tipo Jmenu. Procedemos a renombrarlo con JMenuProcesos y cambiarle el texto como “Procesos”. Docente: Ing. Mirko Manrique Ronceros Página 7 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 5. Procedemos a agregar dos objetos del tipo JMenuItem. Estas opciones del menú indicarán: “Apertura de Cuentas” y “Operaciones Bancarias”. El panel de Inspector debe quedar así: 6. Si procedemos a ejecutar lo avanzado hasta el momento se debe visualizar lo siguiente: 7. Ahora, vamos aproceder a crear el formulario para apertura de cuentas. Creamos un objeto JFrame. Docente: Ing. Mirko Manrique Ronceros Página 8 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 8. Le damos como nombre al formulario frmApertura. Luego dar click en el botón de comando Finish (en caso de que la versión de NetBeans es en castellano entonces dar click en el botón de comando Terminar) 9. Se muestra el entorno de desarrollo de NetBeans y no olvidemos de dar click en el botón derecho del mouse sobre el formulario y establece AbsoluteLayout en SetLayout. Docente: Ing. Mirko Manrique Ronceros Página 9 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 10. Iniciamos el diseño del formulario colocando un objeto JLabel y JTabbedPanel. Creamos la primera pestaña con la expresión “Apertura de Cuentas”. 11. Procedemos a colocar AbsoluteLayout en la opción Set Layout cuando usemos el botón derecho del mouse sobre el Tab1. Docente: Ing. Mirko Manrique Ronceros Página 10 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 12. Colocamos un objeto JDesktopPanel, cambiamos el color a un amarillo claro y luego ponemos un objeto JPanel, el cual debe tener un borde y un título con la expresión “Información del Cliente”. Al objeto JPanel debemos establecer AbsoluteLayout en SetLayout. Docente: Ing. Mirko Manrique Ronceros Página 11 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 13. Continuamos con el diseño del formulario. Debemos crear un segundo objeto JPanel dentro del Tab1 y establecer AbsoluteLayout en SetLayout. 14. Procedamos a colocar nombres a los objetos de control de la primera pestaña. Docente: Ing. Mirko Manrique Ronceros Página 12 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 15. Vamos a diseñar la segunda pestaña. Procedemos a colocar AbsoluteLayout en la opción Set Layout cuando usemos el botón derecho del mouse sobre el Tab2. Docente: Ing. Mirko Manrique Ronceros Página 13 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 16. El diseño del formulario para la segunda pestaña debe quedar así: 17. Pasemos a diseñar el formulario para las operaciones bancarias. Creamos un objeto JFrame. 18. Le damos como nombre al formulario frmOperaciones. Docente: Ing. Mirko Manrique Ronceros Página 14 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Luego dar click en el botón de comando Finish (en caso de que la versión de NetBeans es en castellano entonces dar click en el botón de comando Terminar) 19. Se muestra el entorno de desarrollo de NetBeans y no olvidemos de dar click en el botón derecho del mouse sobre el formulario y establece AbsoluteLayout en SetLayout. 20. Iniciamos JTabbedPanel. el diseño Docente: Ing. Mirko Manrique Ronceros del formulario Página 15 de 30 colocando un objeto JLabel y mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Creamos la primera pestaña con la expresión “Operaciones Banacrias” y procedemos a colocar AbsoluteLayout en la opción Set Layout cuando usemos el botón derecho del mouse sobre el Tab1. 21. Colocamos un objeto JDesktopPanel, cambiamos el color a un amarillo claro y luego ponemos un objeto JPanel, el cual debe tener un borde y un título con la expresión “Información del Cliente”. Al objeto JPanel debemos establecer AbsoluteLayout en SetLayout. Docente: Ing. Mirko Manrique Ronceros Página 16 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 22. Continuamos con el diseño del formulario. Debemos crear un segundo objeto JPanel dentro del Tab1 y establecer AbsoluteLayout en SetLayout. 23. Procedamos a colocar nombres a los objetos de control de la primera pestaña. Docente: Ing. Mirko Manrique Ronceros Página 17 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 24. Vamos a diseñar la segunda pestaña. Procedemos a colocar AbsoluteLayout en la opción Set Layout cuando usemos el botón derecho del mouse sobre el Tab2. 25. El diseño del formulario para la segunda pestaña debe quedar así: Docente: Ing. Mirko Manrique Ronceros Página 18 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III 26. Procedamos a programar en cada uno de los formularios. CODIGO DEL FORMULARIO frmMenu public class frmMenu extends javax.swing.JFrame { //creación de atributos de tipo arreglo y entero public static String valores[][]=new String [100][5]; public static String movimientos[][]=new String [100][6]; public static int registros=-1; public static int filas=-1; //método para asignar datos al arreglo valores public void setValores(int f,String d1, String d2, String d3, String d4, String d5) { valores[f][0]=d1; valores[f][1]=d2; valores[f][2]=d3; valores[f][3]=d4; valores[f][4]=d5; } //método para obtener un dato dado el valor de los índices del elemento del arreglo public String getValores(int f, int c) { return valores[f][c]; } //método que actualiza el saldo de la cuenta public void setActualizaSaldo(int f, String s) { valores[f][4]=s; } //método que actualiza el valor de filas que controla al arreglo valores public void setFilas(int f) { filas=f; } //método que perimte obtener el valor del atributo filas public int getFilas() { return filas; } //método para asignar datos al arreglo movimeintos public void setMovimientos(int f,String d1, String d2, String d3, String d4, String d5, String d6) { movimientos[f][0]=d1; movimientos[f][1]=d2; movimientos[f][2]=d3; movimientos[f][3]=d4; movimientos[f][4]=d5; movimientos[f][5]=d6; } //método para obtener un dato dado el valor de los índices de un elemento public String getMovimientos(int f, int c) { return movimientos[f][c]; } //método que actualiza el valor de registros que controla el arreglo movimientos. public void setRegistros(int f) { registros=f; } Docente: Ing. Mirko Manrique Ronceros Página 19 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III //método para obtener el valor del atributo registros public int getRegistros() { return registros; } //método constructor public frmMenu() { initComponents(); this.setSize(800,700); } private void jMenuItemOperacionesActionPerformed(java.awt.event.ActionEvent evt) { new frmOperaciones().setVisible(true); } private void jMenuItemAperturaCuentasActionPerformed(java.awt.event.ActionEvent evt) { new frmApertura().setVisible(true); } CODIGO DEL FORMULARIO frmApertura package caso_banco; import javax.swing.JOptionPane.*; import javax.swing.*; import javax.swing.table.*; public class frmApertura extends javax.swing.JFrame { DefaultTableModel dtm=new DefaultTableModel(); //instanciar fmenu a partir de la clase frmMenu frmMenu fmenu=new frmMenu(); /** Creates new form frmApertura */ //método constructor public frmApertura() { initComponents(); String titulos[]={"Nro Tarjeta","Apellidos","Nombres","Tipo Cuenta","Saldo Actual"}; dtm.setColumnIdentifiers(titulos); this.usoObjetosRadio(false); TablaCuentas.setModel(dtm); this.llenarTabla(); btnGrabar.setEnabled(false); this.setLocation(120,120); txtApe.requestFocus(); } //método para llenar de filas a la TablaCuentas public void llenarTabla() { int f, i; f=fmenu.getFilas(); String datos[]=new String[5]; if (f>=0) { for (i=0;i<=f;i++) { datos[0]=fmenu.getValores(i,0); datos[1]=fmenu.getValores(i,1); datos[2]=fmenu.getValores(i,2); datos[3]=fmenu.getValores(i,3); datos[4]=fmenu.getValores(i,4); dtm.addRow(datos); } } } public void limpiarObjetos() { txtApe.setText(""); Docente: Ing. Mirko Manrique Ronceros Página 20 de 30 mirko.manrique@hotmail.com } UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III txtNom.setText(""); txtDir.setText(""); txtDoc.setText(""); txtNroTar.setText(""); txtSaldoInicial.setText(""); public void usoObjetosTexto(boolean accion) { txtDir.setEnabled(accion); txtDoc.setEnabled(accion); } public void usoObjetosRadio(boolean accion) { rbAhorroSoles.setEnabled(accion); rbAhorroDolares.setEnabled(accion); rbCTSsoles.setEnabled(accion); rbCTSdolares.setEnabled(accion); } private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) { this.limpiarObjetos(); this.usoObjetosTexto(false); this.usoObjetosRadio(false); btnGrabar.setEnabled(false); txtApe.requestFocus(); } private void btnGrabarActionPerformed(java.awt.event.ActionEvent evt) { String datos[]=new String[5]; int filas; boolean verifica; if (txtApe.getText().length()==0) { JOptionPane.showMessageDialog(null,"Ingresa el Apellido del Cliente"); return; } if (txtNom.getText().length()==0) { JOptionPane.showMessageDialog(null,"Ingresa el Nombre del Cliente"); return; } if (txtDoc.getText().length()==0) { JOptionPane.showMessageDialog(null,"Ingresa el Número del Documento de Identidad del Cliente"); return; } verifica=rbAhorroSoles.isSelected() || rbAhorroDolares.isSelected() || rbCTSsoles.isSelected() || rbCTSdolares.isSelected(); if (!verifica) { JOptionPane.showMessageDialog(null,"Selecciona un tipo de Cuenta"); return; } if (txtSaldoInicial.getText().length()==0) { JOptionPane.showMessageDialog(null,"Ingresa un Saldo Inicial"); return; } datos[0]="5788"+txtDoc.getText(); datos[1]=txtApe.getText(); datos[2]=txtNom.getText(); datos[4]=txtSaldoInicial.getText(); if (rbAhorroSoles.isSelected()) { datos[3]="Ahorro en Soles"; } if (rbAhorroDolares.isSelected()) { datos[3]="Ahorro en Dólares"; Docente: Ing. Mirko Manrique Ronceros Página 21 de 30 mirko.manrique@hotmail.com } UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III } if (rbCTSsoles.isSelected()) { datos[3]="CTS en Soles"; } if (rbCTSdolares.isSelected()) { datos[3]="CTS en Dólares"; } dtm.addRow(datos); filas=dtm.getRowCount(); fmenu.setValores(filas-1,datos[0],datos[1],datos[2],datos[3],datos[4]); fmenu.setFilas(filas-1); this.limpiarObjetos(); this.usoObjetosTexto(false); btnGrabar.setEnabled(false); this.usoObjetosRadio(false); private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) { String ape, nom, tipocuenta, nrotar; ape=txtApe.getText(); nom=txtNom.getText(); this.usoObjetosRadio(true); int filas, i; boolean encuentra=false; filas=TablaCuentas.getRowCount(); if (filas>0) { for (i=0;i<filas;i++) { if (ape.equalsIgnoreCase((String)TablaCuentas.getValueAt(i,1)) && nom.equalsIgnoreCase((String)TablaCuentas.getValueAt(i,2))) { encuentra=true; txtNroTar.setEnabled(true); nrotar=(String)TablaCuentas.getValueAt(i,0); txtNroTar.setText(nrotar); txtNroTar.setEnabled(false); txtDoc.setEnabled(true); txtDoc.setText(nrotar.substring(4)); txtDoc.setEnabled(false); tipocuenta=(String)TablaCuentas.getValueAt(i,3); if (tipocuenta.equals("Ahorro en Soles")) rbAhorroSoles.setEnabled(false); if (tipocuenta.equals("Ahorro en Dólares")) rbAhorroDolares.setEnabled(false); if (tipocuenta.equals("CTS en Soles")) rbCTSsoles.setEnabled(false); if (tipocuenta.equals("CTS en Dólares")) rbCTSdolares.setEnabled(false); } } } } if (!encuentra) { this.usoObjetosTexto(true); txtDir.setText(""); txtDoc.setText(""); txtDir.requestFocus(); } btnGrabar.setEnabled(true); CODIGO DEL FORMULARIO frmOperaciones package caso_banco; import javax.swing.JOptionPane.*; Docente: Ing. Mirko Manrique Ronceros Página 22 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III import javax.swing.*; import javax.swing.table.*; public class frmOperaciones extends javax.swing.JFrame { DefaultTableModel dtm=new DefaultTableModel(); //instanciar fmenu a partir de la clase frmMenu frmMenu fmenu=new frmMenu(); /** Creates new form frmOperaciones */ //método constructor public frmOperaciones() { initComponents(); String titulos[]={"Tarjeta","Apellidos","Nombres","Tipo Cuenta","Tipo Operación","Monto"}; dtm.setColumnIdentifiers(titulos); TablaOperaciones.setModel(dtm); btnProcesar.setEnabled(false); this.llenarTabla(); this.setLocation(120,120); } //método para llenar de filas a la TablaOperaciones public void llenarTabla() { int f, i; f=fmenu.getRegistros(); String datos[]=new String[6]; if (f>=0) { for (i=0;i<=f;i++) { datos[0]=fmenu.getMovimientos(i,0); datos[1]=fmenu.getMovimientos(i,1); datos[2]=fmenu.getMovimientos(i,2); datos[3]=fmenu.getMovimientos(i,3); datos[4]=fmenu.getMovimientos(i,4); datos[5]=fmenu.getMovimientos(i,5); dtm.addRow(datos); } } } public void usoObjetosRadio(boolean accion) { rbAhorroSoles.setEnabled(accion); rbAhorroDolares.setEnabled(accion); rbCTSsoles.setEnabled(accion); rbCTSdolares.setEnabled(accion); } public void limpiarObjetos() { txtNroTar.setText(""); txtApe.setText(""); txtNom.setText(""); txtMonto.setText(""); } private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) { this.limpiarObjetos(); this.usoObjetosRadio(true); txtNroTar.requestFocus(); } private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) { this.hide(); } private void btnProcesarActionPerformed(java.awt.event.ActionEvent evt) { String datos[]=new String[6]; Docente: Ing. Mirko Manrique Ronceros Página 23 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III int reg, filas, i, posicion=0; double saldo=0.0; boolean verifica; verifica=rbAhorroSoles.isSelected() || rbAhorroDolares.isSelected() || rbCTSsoles.isSelected() || rbCTSdolares.isSelected(); if (!verifica) { JOptionPane.showMessageDialog(null,"Selecciona un tipo de Cuenta"); return; } verifica=rbRetiro.isSelected() || rbDeposito.isSelected(); if (!verifica) { JOptionPane.showMessageDialog(null,"Selecciona un tipo de Operación"); return; } if (txtMonto.getText().length()==0) { JOptionPane.showMessageDialog(null,"Ingresa el Monto de la Operación"); return; } datos[0]=txtNroTar.getText(); datos[1]=txtApe.getText(); datos[2]=txtNom.getText(); if (rbAhorroSoles.isSelected()) { datos[3]="Ahorro en Soles"; } if (rbAhorroDolares.isSelected()) { datos[3]="Ahorro en Dólares"; } if (rbCTSsoles.isSelected()) { datos[3]="CTS en Soles"; } if (rbCTSdolares.isSelected()) { datos[3]="CTS en Dólares"; } if (rbRetiro.isSelected()) { datos[4]="Retiro"; } if (rbDeposito.isSelected()) { datos[4]="Depósito"; } datos[5]=txtMonto.getText(); //Búsqueda del Saldo de la cuenta filas=fmenu.getFilas(); for (i=0;i<=filas;i++) { if (fmenu.getValores(i,0).equals(datos[0]) && fmenu.getValores(i,3).equals(datos[3])) { saldo=Double.parseDouble(fmenu.getValores(i,4)); posicion=i; } } //en caso de ser retiro verificar suficiente saldo de la cuenta if (rbRetiro.isSelected()) { if (Double.parseDouble(datos[5])>saldo) { JOptionPane.showMessageDialog(null,"El Monto de retiro supera al saldo Actual"); return; } saldo=saldo-Double.parseDouble(datos[5]); } //en caso de ser deposito sumar en saldo if (rbDeposito.isSelected()) Docente: Ing. Mirko Manrique Ronceros Página 24 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III { saldo=saldo+Double.parseDouble(datos[5]); } //actualizamos el saldo de la cuenta fmenu.setActualizaSaldo(posicion,String.valueOf(saldo)); //agregamos una fila en la Tabla que se encuentra en la segunda pestaña dtm.addRow(datos); //obtenemos el número de filas encontradas en la Tabla y luego grabamos en el arreglo matriz Movimientos reg=dtm.getRowCount(); fmenu.setMovimientos(reg-1,datos[0],datos[1],datos[2],datos[3],datos[4],datos[5]); //actualizamos el número de registros fmenu.setRegistros(reg-1); this.limpiarObjetos(); this.usoObjetosRadio(true); btnProcesar.setEnabled(false ); txtNroTar.requestFocus(); } private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) { String nrotar; nrotar=txtNroTar.getText(); int f, i; f=fmenu.getFilas(); boolean encuentra=false; if (f>=0) { this.usoObjetosRadio(false); for (i=0;i<=f;i++) { if (fmenu.getValores(i,0).equals(nrotar)) { if (fmenu.getValores(i,3).equals("Ahorro en Soles")) rbAhorroSoles.setEnabled(true); if (fmenu.getValores(i,3).equals("Ahorro en Dólares")) rbAhorroDolares.setEnabled(true); if (fmenu.getValores(i,3).equals("CTS en Soles")) rbCTSsoles.setEnabled(true); if (fmenu.getValores(i,3).equals("CTS en Dólares")) rbCTSdolares.setEnabled(true); txtApe.setText(fmenu.getValores(i,1)) ; txtNom.setText(fmenu.getValores(i,2) ); encuentra=true; btnProcesar.setEnabled(true); } } if (!encuentra) { JOptionPane.showMessageDialog(null,"El número de Tarjeta NO EXISTE !!!"); this.usoObjetosRadio(true); } } } else { JOptionPane.showMessageDialog(null,"No existe Tarjeta alguna para realizar una Operación"); } 27. Una vez programado, procedemos a ejecutar la aplicación. Ejecutamos el formulario frmMenu. Docente: Ing. Mirko Manrique Ronceros Página 25 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Al dar click en la opción Apertura de Cuentas, ingresamos los apellidos y nombres de un cliente. Luego damos click en el botón de comando Buscar y como es un nuevo cliente procedemos a ingresar la dirección y el documento de identidad. Seleccionamos el tipo de cuenta Ahorro en Soles. Por ejemplo si no ingresamos Docente: Ing. Mirko Manrique Ronceros Página 26 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III el saldo inicial y damos click en el botón de comando Grabar mostrará un mensaje de error. Una vez ingresado el saldo inicial y al dar click en el botón de comando Grabar se graba en el objeto JTable denominado TablaCuentas. Se limpia los obejtos de control y se inhabilita el botón de comando Grabar. Docente: Ing. Mirko Manrique Ronceros Página 27 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Se mostrará en la segunda pestaña la cuenta aperturada. Damos click en el botón de comando Cerrar. Seleccionamos del menú la opción Operaciones Bancarias. Ingresamos el número de tarjeta y al dar click se visualiza los datos del cliente y se habilitan las cuentas aperturadas. Docente: Ing. Mirko Manrique Ronceros Página 28 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Una vez seleccionado la cuenta de Ahorros en soles, elegimos el tipo de operación de Depósito. Ingresamos el monto de la operación. Damos click en el botón de comando Procesar se procede a grabar los datos generando una nueva fila en el objeto JTable denominado TablaOperaciones. Docente: Ing. Mirko Manrique Ronceros Página 29 de 30 mirko.manrique@hotmail.com UNIVERSIDAD NACIONAL DEL SANTA E.A.P. SISTEMAS E INFORMATICA FACULTA DE INGENIERIA CURSO: MICROCOMPUTACION III Si cerramos la ventana de Operaciones Bancarias y seleccionamos la opción de Apertura de Cuentas y nos dirigimos a la segunda pestaña y observamos que el saldo actual ha aumentando en 300 soles quedando en 800 soles. Docente: Ing. Mirko Manrique Ronceros Página 30 de 30 mirko.manrique@hotmail.com