{"id":118,"date":"2016-11-01T01:59:37","date_gmt":"2016-11-01T01:59:37","guid":{"rendered":"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/?page_id=118"},"modified":"2018-01-17T20:51:11","modified_gmt":"2018-01-17T20:51:11","slug":"agenda-telefonica-con-base-de-datos","status":"publish","type":"page","link":"https:\/\/profeluismitre.com.mx\/Ejemplos\/?page_id=118","title":{"rendered":"Agenda Telefonica con Base de Datos"},"content":{"rendered":"<p style=\"text-align: center;\">@Autor: Prof. Luis Mitre<\/p>\n<p style=\"text-align: center;\">Esta Practica es una Agenda Telef\u00f3nica que almacena la informaci\u00f3n en una base de datos Local en Mysql.<\/p>\n<p style=\"text-align: left;\"><strong>Paso 1.\u00a0<\/strong>Creamos un nuevo Proyecto java dando Click en File-New-Java Proyect en Eclipse.<\/p>\n<p style=\"text-align: left;\"><strong>Paso 2.\u00a0<\/strong>Creamos los Paquetes Modelo, Vista y Controlador en el Proyecto creado.<\/p>\n<p style=\"text-align: center;\"><strong>Iniciaremos creando la parte visual de nuestro Proyecto.<\/strong><\/p>\n<p style=\"text-align: left;\"><strong>Paso 3.\u00a0<\/strong>Creamos la Clase <strong>PanelLogin\u00a0<\/strong>\u00a0dentro de paquete <strong>vista<\/strong> en la cual Extenderemos (Heradaremos) dela Clase JPanel para que la clase se comporte como un contenedor quedando:<\/p>\n<pre class=\"lang:java decode:true\">import java.awt.Color;\r\nimport java.awt.Font;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JPasswordField;\r\nimport javax.swing.JTextField;\r\n\r\npublic class PanelLogin extends JPanel{\r\n<\/pre>\n<p><strong>Paso 4:\u00a0<\/strong>ahora creamos los componentes que necesitaremos en esta ventana, considerando que en esta ventana incluiremos un nuevo componente para el uso de las contrase\u00f1as..<\/p>\n<pre class=\"lang:java decode:true \">        JLabel lblUsuario=new JLabel(\"Usuario:\");\r\n\tJLabel lblPass=new JLabel(\"Constrase\u00f1a\");\r\n\tpublic JTextField txtUsuario=new JTextField();\r\n\tpublic JPasswordField txtPass=new JPasswordField();\r\n\tpublic JButton btnLogin=new JButton(\"LOGIN\");<\/pre>\n<p><strong>Paso 5:\u00a0<\/strong>Creamos el Constructor de la clase para empezar a armar nuestra ventana asignando el sistema de ordenamiento a travez de <strong>setLayout(null),\u00a0<\/strong>que indica que usaremos coordenadas:<\/p>\n<pre class=\"lang:java decode:true\">public PanelLogin(){\r\n\t\tsetLayout(null);\r\n\t\tlblUsuario.setBounds(150,200,100,30);\r\n\t\tlblUsuario.setForeground(new Color(255,0,0));\r\n\t\tlblUsuario.setFont(new Font(\"Arial\", 1,20));\r\n\t\tlblPass.setBounds(120,240,140,30);\r\n\t\tlblPass.setForeground(new Color(255,0,0));\r\n\t\tlblPass.setFont(new Font(\"Arial\", 1,20));\r\n\t\ttxtUsuario.setBounds(250,200,100,30);\r\n\t\ttxtPass.setBounds(250,240,100,30);\r\n\t\tbtnLogin.setBounds(200,290,100,30);\r\n\t\tadd(lblUsuario);\r\n\t\tadd(lblPass);\r\n\t\tadd(txtUsuario);\r\n\t\tadd(txtPass);\r\n\t\tadd(btnLogin);\r\n\t}\r\n}<\/pre>\n<p>La ventana se vera Asi, una vez ya corriendo el programa:<\/p>\n<p><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-123 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda1-293x300.png\" alt=\"agenda1\" width=\"293\" height=\"300\" \/><\/a><\/p>\n<p><strong>Paso 6: \u00a0<\/strong>Ahora creamos la clase PanelAltas, usando el mismo procedimiento:<\/p>\n<ol>\n<li style=\"text-align: left;\">Creamos los objetos necesarios<\/li>\n<li style=\"text-align: left;\">Creamos el constructor y agregamos coordenadas<\/li>\n<li style=\"text-align: left;\">agregamos los componentes al contenedor.<\/li>\n<\/ol>\n<pre class=\"lang:java decode:true\">import java.awt.Color;\r\nimport java.awt.Font;\r\nimport javax.swing.BorderFactory;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JTextField;\r\nimport javax.swing.border.Border;\r\n\r\npublic class PanelAltas extends JPanel{\r\n\tpublic JLabel lblTitulo=new JLabel(\"ALTAS\");\r\n\tpublic JLabel lblNombre=new JLabel(\"Nombre\");\r\n\tpublic JLabel lblApellido=new JLabel(\"Apellido\");\r\n\tpublic JLabel lblTelefono=new JLabel(\"Telefono\");\r\n\tpublic JLabel lblCorreo=new JLabel(\"Correo\");\r\n\tpublic JLabel lblFace=new JLabel(\"Facebook\");\r\n\tpublic JLabel lblTwitter=new JLabel(\"Twitter\");\r\n\tpublic JLabel lblInstagram=new JLabel(\"Instagram\");\r\n\tpublic JTextField txtNombre=new JTextField();\r\n\tpublic JTextField txtApellido=new JTextField();\r\n\tpublic JTextField txtTelefono=new JTextField();\r\n\tpublic JTextField txtCorreo=new JTextField();\r\n\tpublic JTextField txtFacebook=new JTextField();\r\n\tpublic JTextField txtTwitter=new JTextField();\r\n\tpublic JTextField txtInstagram=new JTextField();\r\n\tpublic JButton btnCancelar=new JButton(\"Cancelar\");\r\n\tpublic JButton btnGrabar=new JButton(\"Grabar\");\r\n\tpublic JLabel lblFoto=new JLabel(\"Foto Aqui\");\r\n\tBorder marco = BorderFactory.createLineBorder(Color.BLUE, 5);\r\n\tpublic ImageIcon foto;\r\n\t\r\n\tpublic PanelAltas(){\r\n\t\tsetLayout(null);\r\n\t\tlblTitulo.setBounds(200,20,100,50);\r\n\t\tlblTitulo.setFont(new Font(\"Arial\", 1, 25));\r\n\t\tlblFoto.setBorder(marco);\r\n\t\tlblFoto.setHorizontalAlignment(JLabel.CENTER);\r\n\t\tlblFoto.setBounds(230,80,200,200);\r\n\t\t\r\n\t\tlblNombre.setBounds(30,80,80,30);\r\n\t\tlblApellido.setBounds(30,120,80,30);\r\n\t\tlblTelefono.setBounds(30,160,80,30);\r\n\t\tlblCorreo.setBounds(30,200,80,30);\r\n\t\tlblFace.setBounds(30,240,80,30);\r\n\t\tlblTwitter.setBounds(30,280,80,30);\r\n\t\tlblInstagram.setBounds(30,320,80,30);\r\n\t\ttxtNombre.setBounds(110,80,100,30);\r\n\t\ttxtApellido.setBounds(110,120,100,30);\r\n\t\ttxtTelefono.setBounds(110,160,100,30);\r\n\t\ttxtCorreo.setBounds(110,200,100,30);\r\n\t\ttxtFacebook.setBounds(110,240,100,30);\r\n\t\ttxtTwitter.setBounds(110,280,100,30);\r\n\t\ttxtInstagram.setBounds(110,320,100,30);\r\n\t\tbtnCancelar.setBounds(75,370,100,50);\r\n\t\tbtnGrabar.setBounds(225,370,100,50);\r\n\t\tadd(lblTitulo);\r\n\t\tadd(lblNombre);\r\n\t\tadd(lblApellido);\r\n\t\tadd(lblTelefono);\r\n\t\tadd(lblCorreo);\r\n\t\tadd(lblFace);\r\n\t\tadd(lblTwitter);\r\n\t\tadd(lblInstagram);\r\n\t\tadd(txtNombre);\r\n\t\tadd(txtApellido);\r\n\t\tadd(txtTelefono);\r\n\t\tadd(txtFacebook);\r\n\t\tadd(txtCorreo);\r\n\t\tadd(txtTwitter);\r\n\t\tadd(txtInstagram);\r\n\t\tadd(btnCancelar);\r\n\t\tadd(btnGrabar);\r\n\t\tadd(lblFoto);\r\n\t\t\r\n\t}\r\n}<\/pre>\n<p>La ventana se vera de la siguiente manera:<\/p>\n<p><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-124 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda2-295x300.png\" alt=\"agenda2\" width=\"295\" height=\"300\" \/><\/a><\/p>\n<p>Paso 7: Ahora creamos la Clase PanelBajas que al igual que la clase altas realizamos el mismo procedimiento.<\/p>\n<p><strong>nota:\u00a0<\/strong>En esta clase agregamos un nuevo elemento que es el bot\u00f3n para buscar..<\/p>\n<pre class=\"lang:java decode:true\">import java.awt.Color;\r\nimport java.awt.Font;\r\nimport javax.swing.BorderFactory;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JTextField;\r\nimport javax.swing.border.Border;\r\n\r\npublic class PanelBajas extends JPanel {\r\n\tpublic JLabel lblTitulo=new JLabel(\"BAJAS\");\r\n\tpublic JLabel lblNombre=new JLabel(\"Nombre\");\r\n\tpublic JLabel lblApellido=new JLabel(\"Apellido\");\r\n\tpublic JLabel lblTelefono=new JLabel(\"Telefono\");\r\n\tpublic JLabel lblCorreo=new JLabel(\"Correo\");\r\n\tpublic JLabel lblFace=new JLabel(\"Facebook\");\r\n\tpublic JLabel lblTwitter=new JLabel(\"Twitter\");\r\n\tpublic JLabel lblInstagram=new JLabel(\"Instagram\");\r\n\tpublic JTextField txtNombre=new JTextField();\r\n\tpublic JTextField txtApellido=new JTextField();\r\n\tpublic JTextField txtTelefono=new JTextField();\r\n\tpublic JTextField txtCorreo=new JTextField();\r\n\tpublic JTextField txtFacebook=new JTextField();\r\n\tpublic JTextField txtTwitter=new JTextField();\r\n\tpublic JTextField txtInstagram=new JTextField();\r\n\tpublic JButton btnCancelar=new JButton(\"Cancelar\");\r\n\tpublic JButton btnGrabar=new JButton(\"Eliminar\");\r\n\tpublic JButton btnBuscar=new JButton(\"Buscar\");\r\n\tpublic JLabel lblFoto=new JLabel(\"Foto Aqui\");\r\n\tBorder marco = BorderFactory.createLineBorder(Color.BLUE, 5);\r\n\tpublic ImageIcon foto;\r\n\t\r\n\tpublic PanelBajas(){\r\n\t\tbtnGrabar.setEnabled(false);\r\n\t\tsetLayout(null);\r\n\t\tlblTitulo.setBounds(200,20,100,50);\r\n\t\tlblTitulo.setFont(new Font(\"Arial\", 1, 25));\r\n\t\tlblFoto.setBorder(marco);\r\n\t\tlblFoto.setHorizontalAlignment(JLabel.CENTER);\r\n\t\tlblFoto.setBounds(230,130,200,200);\r\n\t\t\r\n\t\tlblTelefono.setBounds(30,80,80,30);\r\n\t\ttxtTelefono.setBounds(110,80,100,30);\r\n\t\tbtnBuscar.setBounds(240,80,100,30);\r\n\t\t\r\n\t\t\r\n\t\tlblNombre.setBounds(30,120,80,30);\r\n\t\tlblApellido.setBounds(30,160,80,30);\t\t\r\n\t\tlblCorreo.setBounds(30,200,80,30);\r\n\t\tlblFace.setBounds(30,240,80,30);\r\n\t\tlblTwitter.setBounds(30,280,80,30);\r\n\t\tlblInstagram.setBounds(30,320,80,30);\r\n\t\t\r\n\t\ttxtNombre.setBounds(110,120,100,30);\r\n\t\ttxtApellido.setBounds(110,160,100,30);\t\t\r\n\t\ttxtCorreo.setBounds(110,200,100,30);\r\n\t\ttxtFacebook.setBounds(110,240,100,30);\r\n\t\ttxtTwitter.setBounds(110,280,100,30);\r\n\t\ttxtInstagram.setBounds(110,320,100,30);\r\n\t\tbtnCancelar.setBounds(75,370,100,50);\r\n\t\tbtnGrabar.setBounds(225,370,100,50);\r\n\t\ttxtNombre.setEditable(false);\r\n\t\ttxtApellido.setEditable(false);\r\n\t\ttxtCorreo.setEditable(false);\r\n\t\ttxtFacebook.setEditable(false);\r\n\t\ttxtTwitter.setEditable(false);\r\n\t\ttxtInstagram.setEditable(false);\r\n\t\tadd(lblTitulo);\r\n\t\tadd(lblNombre);\r\n\t\tadd(lblApellido);\r\n\t\tadd(lblTelefono);\r\n\t\tadd(lblCorreo);\r\n\t\tadd(lblFace);\r\n\t\tadd(lblTwitter);\r\n\t\tadd(lblInstagram);\r\n\t\tadd(txtNombre);\r\n\t\tadd(txtApellido);\r\n\t\tadd(txtTelefono);\r\n\t\tadd(txtFacebook);\r\n\t\tadd(txtCorreo);\r\n\t\tadd(txtTwitter);\r\n\t\tadd(txtInstagram);\r\n\t\tadd(btnCancelar);\r\n\t\tadd(btnGrabar);\r\n\t\tadd(lblFoto);\r\n\t\tadd(btnBuscar);\r\n\t\t\r\n\t}\r\n}<\/pre>\n<p>La ventana se vera Asi:<\/p>\n<p><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-125 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda3-293x300.png\" alt=\"agenda3\" width=\"293\" height=\"300\" \/><\/a><\/p>\n<p><strong>Paso 8:\u00a0<\/strong>Continuamos con la Clase PanelCambios:<\/p>\n<pre class=\"lang:java decode:true\">import java.awt.Color;\r\nimport java.awt.Font;\r\n\r\nimport javax.swing.BorderFactory;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JTextField;\r\nimport javax.swing.border.Border;\r\n\r\npublic class PanelCambios extends JPanel {\r\n\tpublic JLabel lblTitulo=new JLabel(\"CAMBIOS\");\r\n\tpublic JLabel lblNombre=new JLabel(\"Nombre\");\r\n\tpublic JLabel lblApellido=new JLabel(\"Apellido\");\r\n\tpublic JLabel lblTelefono=new JLabel(\"Telefono\");\r\n\tpublic JLabel lblCorreo=new JLabel(\"Correo\");\r\n\tpublic JLabel lblFace=new JLabel(\"Facebook\");\r\n\tpublic JLabel lblTwitter=new JLabel(\"Twitter\");\r\n\tpublic JLabel lblInstagram=new JLabel(\"Instagram\");\r\n\tpublic JTextField txtNombre=new JTextField();\r\n\tpublic JTextField txtApellido=new JTextField();\r\n\tpublic JTextField txtTelefono=new JTextField();\r\n\tpublic JTextField txtCorreo=new JTextField();\r\n\tpublic JTextField txtFacebook=new JTextField();\r\n\tpublic JTextField txtTwitter=new JTextField();\r\n\tpublic JTextField txtInstagram=new JTextField();\r\n\tpublic JButton btnCancelar=new JButton(\"Cancelar\");\r\n\tpublic JButton btnGrabar=new JButton(\"Grabar\");\r\n\tpublic JButton btnBuscar=new JButton(\"Buscar\");\r\n\tpublic JLabel lblFoto=new JLabel(\"Foto Aqui\");\r\n\tBorder marco = BorderFactory.createLineBorder(Color.BLUE, 5);\r\n\tpublic ImageIcon foto;\r\n\t\r\n\tpublic PanelCambios(){\r\n\t\tsetLayout(null);\r\n\t\tlblTitulo.setBounds(180,20,200,50);\r\n\t\tlblTitulo.setFont(new Font(\"Arial\", 1, 25));\r\n\t\tlblFoto.setBorder(marco);\r\n\t\tlblFoto.setHorizontalAlignment(JLabel.CENTER);\r\n\t\tlblFoto.setBounds(230,130,200,200);\r\n\t\t\r\n\t\tlblTelefono.setBounds(30,80,80,30);\r\n\t\ttxtTelefono.setBounds(110,80,100,30);\r\n\t\tbtnBuscar.setBounds(240,80,100,30);\r\n\t\t\r\n\t\t\r\n\t\tlblNombre.setBounds(30,120,80,30);\r\n\t\tlblApellido.setBounds(30,160,80,30);\t\t\r\n\t\tlblCorreo.setBounds(30,200,80,30);\r\n\t\tlblFace.setBounds(30,240,80,30);\r\n\t\tlblTwitter.setBounds(30,280,80,30);\r\n\t\tlblInstagram.setBounds(30,320,80,30);\r\n\t\t\r\n\t\ttxtNombre.setBounds(110,120,100,30);\r\n\t\ttxtApellido.setBounds(110,160,100,30);\t\t\r\n\t\ttxtCorreo.setBounds(110,200,100,30);\r\n\t\ttxtFacebook.setBounds(110,240,100,30);\r\n\t\ttxtTwitter.setBounds(110,280,100,30);\r\n\t\ttxtInstagram.setBounds(110,320,100,30);\r\n\t\tbtnCancelar.setBounds(75,370,100,50);\r\n\t\tbtnGrabar.setBounds(225,370,100,50);\r\n\t\tadd(lblTitulo);\r\n\t\tadd(lblNombre);\r\n\t\tadd(lblApellido);\r\n\t\tadd(lblTelefono);\r\n\t\tadd(lblCorreo);\r\n\t\tadd(lblFace);\r\n\t\tadd(lblTwitter);\r\n\t\tadd(lblInstagram);\r\n\t\tadd(txtNombre);\r\n\t\tadd(txtApellido);\r\n\t\tadd(txtTelefono);\r\n\t\tadd(txtFacebook);\r\n\t\tadd(txtCorreo);\r\n\t\tadd(txtTwitter);\r\n\t\tadd(txtInstagram);\r\n\t\tadd(btnCancelar);\r\n\t\tadd(btnGrabar);\r\n\t\tadd(lblFoto);\r\n\t\tadd(btnBuscar);\r\n\t\t\r\n\t}\r\n}<\/pre>\n<p>La Ventana se Vera Asi:<\/p>\n<p><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-126 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda4-296x300.png\" alt=\"agenda4\" width=\"296\" height=\"300\" \/><\/a><\/p>\n<p><strong>Paso 9: <\/strong>Ahora la clase PanelConsultas:<\/p>\n<pre class=\"lang:java decode:true\">import java.awt.Font;\r\n\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JScrollPane;\r\nimport javax.swing.JTable;\r\nimport javax.swing.JTextField;\r\nimport javax.swing.table.DefaultTableModel;\r\n\r\npublic class PanelConsultas extends JPanel {\r\n\tpublic JLabel lblTitulo = new JLabel(\"CONSULTAS\");\r\n\tpublic JLabel lblTelefono = new JLabel(\"Telefono\");\r\n\tpublic JTextField txtTelefono = new JTextField();\r\n\tpublic JTable tabla=new JTable();\r\n\tpublic JScrollPane jsp;\r\n\tpublic DefaultTableModel modeloTabla;\r\n\t\r\n\r\n\tpublic PanelConsultas() {\r\n\t\tsetLayout(null);\r\n\t\t\r\n\t\t\r\n\t\tmodeloTabla=new DefaultTableModel(){\r\n\t\t\tpublic boolean isCellEditable(int fila, int columna){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t};\r\n\t\tmodeloTabla.addColumn(\"Nombre:\");\r\n\t\tmodeloTabla.addColumn(\"Apellido:\");\r\n\t\tmodeloTabla.addColumn(\"Telefono:\");\r\n\t\tmodeloTabla.addColumn(\"Correo:\");\r\n\t\tmodeloTabla.addColumn(\"Facebook\");\r\n\t\tmodeloTabla.addColumn(\"Twitter\");\r\n\t\tmodeloTabla.addColumn(\"Instagram\");\r\n\t\t\r\n\t\ttabla=new JTable(modeloTabla);\r\n\t\tjsp=new JScrollPane(tabla);\r\n\t\tjsp.setViewportView(tabla);\r\n\t\tlblTitulo.setBounds(160, 20, 200, 50);\r\n\t\tlblTitulo.setFont(new Font(\"Arial\", 1, 25));\r\n\t\tlblTelefono.setBounds(30,80,80,30);\r\n\t\ttxtTelefono.setBounds(110,80,100,30);\r\n\t\tjsp.setBounds(30,120,420,300);\r\n\t\t\r\n\t\t\r\n\t\tadd(lblTitulo);\r\n\t\tadd(lblTelefono);\r\n\t\tadd(txtTelefono);\r\n\t\tadd(jsp);\r\n\t\t\r\n\t}\r\n}<\/pre>\n<p>La ventana se vera asi:<\/p>\n<p><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-127 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda5-295x300.png\" alt=\"agenda5\" width=\"295\" height=\"300\" \/><\/a><\/p>\n<p>Creamos las Clases\u00a0 Ventana Foto y\u00a0VentanaNuevoUsuario :<\/p>\n<p style=\"text-align: center;\">\n<pre class=\"lang:java decode:true\">import java.awt.BorderLayout;\r\nimport java.awt.Color;\r\n\r\nimport javax.swing.BorderFactory;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.border.Border;\r\n\r\nimport modelo.Modelo;\r\n\r\npublic class VentanaFoto extends JFrame{\r\n\tpublic JLabel lblFoto=new JLabel(\"Foto Aqui\");\r\n\tBorder marco = BorderFactory.createLineBorder(Color.BLUE, 5);\r\n\tpublic ImageIcon foto;\r\n\tModelo modelo=new Modelo();\r\n\t\r\n\tpublic VentanaFoto(ImageIcon foto){\r\n\t\tsetLayout(new BorderLayout() );\r\n\t\tlblFoto.setBorder(marco);\r\n\t\tadd(lblFoto,BorderLayout.CENTER);\r\n\t\tlblFoto.setIcon(foto);\r\n\t\tsetSize(350,350);\r\n\t\tsetVisible(true);\r\n\t}\r\n\r\n\r\n}\r\n<\/pre>\n<pre class=\"lang:java decode:true\">public class VentanaNuevoUsuario extends JFrame {\r\n\tModelo modelo = new Modelo();\r\n\tpublic JLabel lblTitulo = new JLabel(\"Nuevo Usuario\");\r\n\tpublic JLabel lblUsuario = new JLabel(\"Usuario:\");\r\n\tpublic JLabel lblPassword = new JLabel(\"Password:\");\r\n\tpublic JLabel lblConfPassword = new JLabel(\"Confirmar Password:\");\r\n\tpublic JLabel lblTipo=new JLabel(\"Tipo de usuario\");\r\n\r\n\tpublic JTextField txtUsuario = new JTextField();\r\n\tpublic JPasswordField txtPass = new JPasswordField();\r\n\tpublic JPasswordField txtConfPass = new JPasswordField();\r\n\t\r\n\tpublic JComboBox cmbtipo=new JComboBox();\r\n\tpublic JButton btnCancelar = new JButton(\"Cancelar\");\r\n\tpublic JButton btnGrabar = new JButton(\"Grabar\");\r\n\r\n\tpublic VentanaNuevoUsuario() {\r\n\t\tsetTitle(\"Nuevo Usuario\");\r\n\t\tsetLayout(null);\r\n\t\tlblTitulo.setBounds(10, 20, 400, 50);\r\n\t\tlblTitulo.setFont(new Font(\"Arial\", 1, 20));\r\n\t\tlblTitulo.setHorizontalAlignment(JLabel.CENTER);\r\n\t\t\r\n\t\tlblUsuario.setBounds(0,80,125,30);\r\n\t\tlblUsuario.setHorizontalAlignment(JLabel.RIGHT);\r\n\t\tlblPassword.setBounds(0,120,125,30);\r\n\t\tlblPassword.setHorizontalAlignment(JLabel.RIGHT);\r\n\t\tlblConfPassword.setBounds(0,160,125,30);\r\n\t\tlblConfPassword.setHorizontalAlignment(JLabel.RIGHT);\r\n\t\t\r\n\t\ttxtUsuario.setBounds(130,80,100,30);\r\n\t\ttxtPass.setBounds(130,120,100,30);\r\n\t\ttxtConfPass.setBounds(130,160,100,30);\r\n\t\t\r\n\t\tbtnCancelar.setBounds(250,80,100,30);\r\n\t\tbtnGrabar.setBounds(250,120,100,30);\r\n\t\t\r\n\t\tlblTipo.setBounds(0,200,125,30);\r\n\t\tlblTipo.setHorizontalAlignment(JLabel.RIGHT);\r\n\t\tcmbtipo.addItem(\"Administrador\");\r\n\t\tcmbtipo.addItem(\"Limitado\");\r\n\t\tcmbtipo.setBounds(130,200,120,30);\r\n\t\t\r\n\t\tadd(lblTitulo);\r\n\t\tadd(lblUsuario);\r\n\t\tadd(lblPassword);\r\n\t\tadd(lblConfPassword);\r\n\t\tadd(txtUsuario);\r\n\t\tadd(txtPass);\r\n\t\tadd(txtConfPass);\r\n\t\tadd(btnCancelar);\r\n\t\tadd(btnGrabar);\r\n\t\tadd(cmbtipo);\r\n\t\tadd(lblTipo);\r\n\t\tsetSize(400,300);\r\n\t\tsetVisible(true);\r\n\t\tacciones();\r\n\t}\r\n\tpublic void acciones(){\r\n\t\tbtnCancelar.addActionListener(new ActionListener() {\r\n\t\t\t\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\t\/\/ TODO Auto-generated method stub\r\n\t\t\t\ttxtUsuario.setText(\"\");\r\n\t\t\t\ttxtPass.setText(\"\");\r\n\t\t\t\ttxtConfPass.setText(\"\");\r\n\t\t\t}\r\n\t\t});\r\n\t\tbtnGrabar.addActionListener(new ActionListener() {\r\n\t\t\t\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\t\/\/ TODO Auto-generated method stub\r\n\t\t\t\tString usuario=txtUsuario.getText();\r\n\t\t\t\tString pass=txtPass.getText();\r\n\t\t\t\tString confir=txtConfPass.getText();\r\n\t\t\t\tint tipo=cmbtipo.getSelectedIndex();\r\n\t\t\t\tif(usuario.equals(\"\")||pass.equals(\"\")||confir.equals(\"\")){\r\n\t\t\t\t\tJOptionPane.showMessageDialog(null, \"Favor de llenar todos los campos\");\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(pass.equals(confir)){\r\n\t\t\t\t\t\tmodelo.nuevoUsuario(usuario,pass,tipo);\r\n\t\t\t\t\t\tsetVisible(false);\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tJOptionPane.showMessageDialog(null, \"Las contrase\u00f1as no Coinciden\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Paso 10:\u00a0<\/strong>Ahora crearemos la Clase VentanaPrincipal que Heredara de la clase JFrame que sera nuestra ventana en donde insertaremos todas las anteriores es decir sera la plataforma donde correra nuestro programa:<\/p>\n<p><strong><span style=\"color: #ff0000;\">Nota: Dentro de esta clase insertamos la imagen de fondo del panel login, dentro de este codigo hay anotaciones donde inicia el codigo para este fin..<\/span><\/strong><\/p>\n<pre class=\"lang:java decode:true\">import java.awt.BorderLayout;\r\nimport java.awt.CardLayout;\r\nimport java.awt.Graphics;\r\nimport java.awt.Image;\r\n\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JMenu;\r\nimport javax.swing.JMenuBar;\r\nimport javax.swing.JMenuItem;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JTabbedPane;\r\n\r\npublic class VentanaPrincipal extends JFrame{\r\n\tpublic PanelLogin panelLogin;\r\n\tpublic PanelAltas panelAltas=new PanelAltas();\r\n\tpublic PanelBajas panelBajas=new PanelBajas();\r\n\tpublic PanelCambios panelCambios=new PanelCambios();\r\n\tpublic PanelConsultas panelConsultas=new PanelConsultas();\r\n\t\r\n\tpublic JMenuBar barraMenu=new JMenuBar();\r\n\tpublic JMenu mnAdministracion=new JMenu(\"Administracion\");\r\n\tpublic JMenu mnAgenda=new JMenu(\"Agenda\");\r\n\tpublic JMenu mnUsuarios=new JMenu(\"Agenda\");\r\n\tpublic JMenuItem mnNuevoUser=new JMenuItem(\"Nuevo Usuario\");\r\n\tpublic JMenuItem mnEliminarUser=new JMenuItem(\"Eliminar Usuario\");\r\n\tpublic JMenu mnSesion=new JMenu(\"Sesion\");\r\n\tpublic JMenuItem mnCerrarSesion=new JMenuItem(\"Cerrar Sesion\");\r\n\tpublic JMenuItem mnAltas=new JMenuItem(\"Altas\");\r\n\tpublic JMenuItem mnBajas=new JMenuItem(\"Bajas\");\r\n\tpublic JMenuItem mnCambios=new JMenuItem(\"Cambios\");\r\n\tpublic JMenuItem mnConsultas=new JMenuItem(\"Consultas\");\r\n\t\r\n\tpublic JTabbedPane pestanas=new JTabbedPane(); \r\n\tpublic JPanel panelCarta=new JPanel();\r\n\tpublic CardLayout cartas=new CardLayout();\r\n\tImage imagen;\r\n\tpublic VentanaPrincipal(){\r\n\t\tsetLayout(new BorderLayout());\r\n\t\tpestanas.insertTab(\"Altas\",null,panelAltas,\"Altas\",0);\r\n\t\tpestanas.insertTab(\"Bajas\",null,panelBajas,\"Bajas\",1);\r\n\t\tpestanas.insertTab(\"Cambios\",null,panelCambios,\"Cambios\",2);\r\n\t\tpestanas.insertTab(\"Consultas\",null,panelConsultas,\"Consultas\",3);\r\n\t\t\r\n\t\tsetJMenuBar(barraMenu);\r\n\t\tbarraMenu.add(mnAdministracion);\r\n\t\tbarraMenu.add(mnAgenda);\r\n\t\t\r\n\t\tmnUsuarios.add(mnNuevoUser);\r\n\t\tmnUsuarios.add(mnEliminarUser);\r\n\t\tmnSesion.add(mnCerrarSesion);\r\n\t\t\r\n\t\tmnAdministracion.add(mnUsuarios);\r\n\t\tmnAdministracion.add(mnSesion);\r\n\t\t\r\n\t\tmnAgenda.add(mnAltas);\r\n\t\tmnAgenda.add(mnBajas);\r\n\t\tmnAgenda.add(mnCambios);\r\n\t\tmnAgenda.add(mnConsultas);\r\n\t\t\r\n\t\t\r\n\t\tbarraMenu.setVisible(false);\r\n\t\tmnAgenda.setEnabled(false);\r\n\t\tmnUsuarios.setEnabled(false);\r\n\t\t\/**\r\n                * el codigo de a continuacion sirve para\r\n                * insertar una imagen de fondo,\r\n                * en este caso es el panel login\r\n                **\/ \r\n\r\n\t\tpanelLogin=new PanelLogin(){\r\n\t\t\tpublic void paintComponent(Graphics g){\r\n\t\t\t\tg.drawImage(imagen,0,0,\r\n\t\t\t\t\tthis.getWidth(),\r\n\t\t\t\t\tthis.getHeight(),null);\r\n\t\t\t}\r\n\t\t};\r\n\t\timagen=new ImageIcon(\".\/imagenes\/sepiente.jpg\").getImage();\r\n\t\trepaint();\r\n                \/\/aqui termina el codigo para la imagen\r\n\r\n\t\tpanelCarta.setLayout(cartas);\r\n\t\tpanelCarta.add(panelLogin,\"login\");\r\n\t\tpanelCarta.add(pestanas,\"todo\");\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\tadd(panelCarta,BorderLayout.CENTER);\r\n\t\tsetSize(500,530);\r\n\t\tsetVisible(true);\r\n\t\tsetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r\n\t}\r\n}<\/pre>\n<p style=\"text-align: center;\"><strong>Con esto hemos terminado por ahora la Parte Gr\u00e1fica\u00a0de nuestro sistema, a partir de este momento si creamos una clase auxiliar y creamos un objeto de la clase VentanaPrincipal miraremos nuestro programa corriendo, cabe mencionar\u00a0que no tendr\u00e1\u00a0todav\u00eda\u00a0ninguna acci\u00f3n.<\/strong><\/p>\n<p style=\"text-align: center;\"><strong>Ahora iniciamos con la Parte importante de nuestro Programa las ACCIONES<\/strong><\/p>\n<p style=\"text-align: left;\"><strong>Paso 11:\u00a0<\/strong>Para poder trabajar con base de datos sera necesario descargar nuestro conector de base de datos dando clic en el siguiente link:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/dev.mysql.com\/downloads\/connector\/j\/\">https:\/\/dev.mysql.com\/downloads\/connector\/j\/<\/a><\/p>\n<p style=\"text-align: left;\">Elegimos en la pagina la opci\u00f3n de <strong>ZIP,\u00a0<\/strong>una vez descargado el archivo lo abrimos con cualquir programa de compresi\u00f3n de archivo en mi caso uso WINRAR, y dentro de la carpeta:\u00a0<strong>mysql-connector-java-\u00a0<\/strong>encontraran un archivo con extencion JAR, el cual descomprimimos en cualquier lugar de nuestra maquina de preferencia <strong>C:\\<\/strong><\/p>\n<p style=\"text-align: left;\">Una vez que tengamos el Archivo procederemos a dar Clic Derecho sobre el Proyecto en el que estamos trabajando en eclipse, Seleccionamos la Opcion\u00a0<strong>BUILD PATH &#8211; CONFIGURE BUILD PATH <\/strong>se abrira la siguiente ventana:<\/p>\n<p style=\"text-align: left;\"><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-131 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/agenda8-300x224.png\" alt=\"agenda8\" width=\"300\" height=\"224\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Elegimos la Pesta\u00f1a\u00a0<strong>Libraries\u00a0<\/strong>y dentro de esta pesta\u00f1a damos clic en el bot\u00f3n\u00a0<strong>Add External Jars\u00a0<\/strong>se abrir\u00e1 el dialogo para elegir un archivo en el cual buscaremos y elegiremos el archivo del que descomprimimos. \u00a0y Damos\u00a0<strong>OK.<\/strong><\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong>Antes de Continuar deberemos crear nuestra base de datos que Llamaremos <span style=\"color: #ff0000;\">agenda\u00a0<span style=\"color: #000000;\">con las siguientes Tablas:<\/span><\/span><\/strong><\/p>\n<p style=\"text-align: center;\"><span style=\"color: #ff0000;\"><strong>contactos<\/strong><\/span><\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/baseDatos1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-155 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/baseDatos1-300x99.png\" alt=\"basedatos1\" width=\"385\" height=\"127\" \/><\/a><strong><span style=\"color: #ff0000;\">usuarios<\/span><\/strong><br \/>\n<a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/baseDatos2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-156 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/baseDatos2-300x66.png\" alt=\"basedatos2\" width=\"405\" height=\"89\" \/><\/a><\/p>\n<p style=\"text-align: left;\"><strong>Paso 12: <\/strong>Creamos la Clase Modelo dentro del paquete del mismo nombre que sera la encargada de comunicarnos con la base de datos, y creamos en ella los siguientes objetos:<\/p>\n<ol>\n<li style=\"text-align: left;\"><strong>Connection Conector;<\/strong> que sera el encargado de realizar la conexi\u00f3n a la base de datos:<\/li>\n<li style=\"text-align: left;\"><strong>Statement ejecutador;<\/strong> que es el encargado de realizar la acciones en la base de datos:<\/li>\n<li style=\"text-align: left;\"><strong>ResulSet capturador;<\/strong> es el que recibir\u00e1 los datos desde la base de datos.<\/li>\n<\/ol>\n<pre class=\"lang:java decode:true\">import java.sql.Connection;\r\nimport java.sql.DriverManager;\r\nimport java.sql.ResultSet;\r\nimport java.sql.SQLException;\r\nimport java.sql.Statement;\r\n\r\nimport javax.swing.table.DefaultTableModel;\r\n\r\npublic class Modelo {\r\n\tResultSet capturador;\r\n\tStatement ejecutador;\r\n\tConnection conector;\r\n\tpublic String nombre;\r\n\tpublic String apellido;\r\n\tpublic String telefono;\r\n\tpublic String correo;\r\n\tpublic String facebook;\r\n\tpublic String twitter;\r\n\tpublic String instagram;\r\n\tpublic String foto;\r\n\tpublic int tipoUsuario=-1;<\/pre>\n<p><strong>Paso 13: <\/strong>creamos el m\u00e9todo\u00a0<strong>conexionBd <\/strong>que recibir\u00e1 los par\u00e1metros usuarios y contrase\u00f1a de la base de datos a la cual nos vamos a conectar.<\/p>\n<pre class=\"lang:java decode:true\">public Connection conexionBd(String user, String pass) {\r\n\r\n\t\ttry {\r\n\t\t\tClass.forName(\"com.mysql.jdbc.Driver\");\r\n\t\t\tconector = DriverManager\r\n\t\t\t\t.getConnection(\r\n\t\t\t\t\t\"jdbc:mysql:\/\/localhost\/agenda?user=\"\r\n\t\t\t\t\t+ user + \"&amp;password=\" + pass + \"\");\r\n\t\t} catch (ClassNotFoundException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t\treturn conector;\r\n\r\n\t}<\/pre>\n<p><strong>Paso 14:\u00a0<\/strong> En el constructor de la Clase Modelo mandamos llamar al m\u00e9todo ConexionBd \u00a0mandando le el usuario y la contrase\u00f1a de nuestra base de datos, para que se conecte cuando se cree el objeto.<\/p>\n<pre class=\"lang:java decode:true \">public Modelo() {\r\n\t\tconexionBd(\"root\", \"123\");\r\n\t}<\/pre>\n<p style=\"text-align: center;\"><strong>Ahora empezamos a crear todos los m\u00e9todos\u00a0que nos ayudaran a trabajar con la Base de\u00a0<\/strong><b>Datos<\/b><\/p>\n<p style=\"text-align: left;\"><strong>Paso 15:\u00a0<\/strong>Creamos el m\u00e9todo <strong>Login<\/strong> el cual nos responder\u00e1 verdadero o falso dependiendo de si existe o no el usuario..<\/p>\n<pre class=\"lang:java decode:true\">public boolean login(String usuario, String pass) {\r\n\tboolean respuesta = false;\r\n\t\ttry{\r\n\t\t     ejecutador = conector.createStatement();\r\n\t\t     capturador = ejecutador\r\n\t\t\t\t.executeQuery(\"select pass,tipo from usuarios where usuario='\"\r\n\t\t\t\t\t\t\t\t+ usuario + \"';\");\r\n\t\t\t\tif (capturador.first()) {\r\n\t\t\t\t\tif (capturador.getString(1).equals(pass)) {\r\n\t\t\t\t\t\trespuesta = true;\r\n\t\t\t\t\t\ttipoUsuario=capturador.getInt(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t \r\n\t\t\t} catch (SQLException e) {\r\n\t\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\t\te.printStackTrace();\r\n\t\t\t}\r\n\t\t\treturn respuesta;\r\n\t}<\/pre>\n<p><strong>Paso 16:\u00a0<\/strong>Ahora creamos el m\u00e9todo<strong>ALTAS\u00a0<\/strong>el cual sera el que reciba la informaci\u00f3n para mandarla a la base de datos.<\/p>\n<pre class=\"lang:java decode:true\">public void altas(String nombre, String apellido, String telefono,\r\n\t\t\tString correo, String facebook, String twitter, String instagram,\r\n\t\t\tString foto) {\r\n\t\t\r\n \r\n\t\ttry {\r\n \r\n\t\tejecutador = conector.createStatement();\r\n\t\tejecutador.executeUpdate(\"insert into contactos values(null,'\"\r\n\t\t\t\t+ nombre + \"','\" + apellido + \"','\" + telefono + \"','\"\r\n\t\t\t\t+ correo + \"','\" + facebook + \"','\" + twitter + \"','\"\r\n\t\t\t\t+ instagram + \"','\" + foto + \"')\");\r\n\t\t} catch (SQLException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n \r\n\t}<\/pre>\n<p><strong>Paso 17:\u00a0<\/strong>Creamos el m\u00e9todo <strong>Bajas<\/strong><\/p>\n<pre class=\"lang:java decode:true\">public void bajas(String telefono) {\r\n\t\ttry {\r\n\t\t\tejecutador = conector.createStatement();\r\n\t\t\tejecutador.execute(\"delete from contactos where telefono='\"\r\n\t\t\t\t\t+ telefono + \"';\");\r\n \r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}<\/pre>\n<p><strong>Paso 18:\u00a0<\/strong>Creamos el m\u00e9todo\u00a0<strong>Buscar\u00a0<\/strong>:<\/p>\n<pre class=\"lang:java decode:true\">public boolean buscar(String telefono) {\r\n\t\tboolean respuesta = false;\r\n\t\ttry {\r\n\t\t\tejecutador = conector.createStatement();\r\n\t\t\tcapturador = ejecutador\r\n\t\t\t\t\t.executeQuery(\"select *from contactos where telefono='\"\r\n\t\t\t\t\t\t\t+ telefono + \"';\");\r\n\t\t\tif (capturador.first()) {\r\n\t\t\t\tnombre = capturador.getString(capturador.findColumn(\"nombre\"));\r\n\t\t\t\tapellido = capturador.getString(capturador\r\n\t\t\t\t\t\t.findColumn(\"apellido\"));\r\n\t\t\t\tcorreo = capturador.getString(capturador.findColumn(\"correo\"));\r\n\t\t\t\tfacebook = capturador.getString(capturador\r\n\t\t\t\t\t\t.findColumn(\"facebook\"));\r\n\t\t\t\ttwitter = capturador\r\n\t\t\t\t\t\t.getString(capturador.findColumn(\"twitter\"));\r\n\t\t\t\tinstagram = capturador.getString(capturador\r\n\t\t\t\t\t\t.findColumn(\"instagram\"));\r\n\t\t\t\tfoto = capturador.getString(capturador.findColumn(\"foto\"));\r\n\t\t\t\trespuesta = true;\r\n\t\t\t}\r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n \r\n\t\treturn respuesta;\r\n\t}<\/pre>\n<p><strong>Paso 19:\u00a0<\/strong>Creamos el m\u00e9todo\u00a0<strong>Cambios<\/strong>:<\/p>\n<pre class=\"lang:java decode:true\">public void cambios(String nombre, String apellido, String correo,String telefono,\r\n\t\t\tString facebook, String twitter, String instagram, String foto, String telmodificar) {\r\n\t\t\t\/\/ CORREGIR LA RUTA\r\n\t\t\t\t\r\n\t\ttry {\r\n\t\t\tejecutador = conector.createStatement();\r\n\t\t\tejecutador\r\n\t\t\t\t\t.executeUpdate(\"update contactos set                           nombre='\"+nombre+\"', \" +\r\n\t\t\t\t\t\t\t\"apellido='\"+apellido+\"', correo='\"+correo+\"', \" +\r\n\t\t\t\t\t\t\t\"facebook='\"+facebook+\"', twitter='\"+twitter+\"', \" +\r\n\t\t\t\t\t\t\t\"instagram='\"+instagram+\"', foto='\"+foto+\"' where telefono='\"+telmodificar+\"';\");\r\n \r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n \r\n\t}<\/pre>\n<p><strong>Paso 20:\u00a0<\/strong>Creamos el m\u00e9todo <strong>Consultas<\/strong>:<\/p>\n<p><strong>\u00a0 \u00a0 \u00a0 \u00a0 NOTA: Este m\u00e9todo\u00a0retorna una objeto de la clase\u00a0DefaultTableModel que nos permitir\u00e1\u00a0insertar los valores a la base de datos.<\/strong><\/p>\n<pre class=\"lang:java decode:true\">public DefaultTableModel consultas(String tel) {\r\n\t\tObject[] filas = new Object[7];\r\n\t\tDefaultTableModel modeloTabla = new DefaultTableModel();\r\n\t\ttry {\r\n\t\t\tejecutador = conector.createStatement();\r\n\t\t\tcapturador =ejecutador\r\n\t\t\t\t\t.executeQuery(\"select *from contactos where telefono like '\"+tel+\"%';\");\r\n\t\t\tmodeloTabla.addColumn(\"Nombre\");\r\n\t\t\tmodeloTabla.addColumn(\"Apellido\");\r\n\t\t\tmodeloTabla.addColumn(\"Telefono\");\r\n\t\t\tmodeloTabla.addColumn(\"Correo\");\r\n\t\t\tmodeloTabla.addColumn(\"Facebook\");\r\n\t\t\tmodeloTabla.addColumn(\"Twitter\");\r\n\t\t\tmodeloTabla.addColumn(\"Instagram\");\r\n\t\t\twhile (capturador.next()) {\r\n\t\t\t\tfilas[0] = capturador.getString(2);\r\n\t\t\t\t\/\/ System.out.println(capturador.getString(2));\r\n\t\t\t\tfilas[1] = capturador.getString(3);\r\n\t\t\t\t\/\/ System.out.println(capturador.getString(3));\r\n\t\t\t\tfilas[2] = capturador.getString(4);\r\n\t\t\t\t\/\/ System.out.println(capturador.getString(4));\r\n\t\t\t\tfilas[3] = capturador.getString(5);\r\n\t\t\t\tfilas[4] = capturador.getString(6);\r\n\t\t\t\tfilas[5] = capturador.getString(7);\r\n\t\t\t\tfilas[6] = capturador.getString(8);\r\n\t\t\t\t\/\/ System.out.println(capturador.getString(5));\r\n\t\t\t\tmodeloTabla.addRow(filas);\r\n \r\n\t\t\t}\r\n \r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n \r\n\t\treturn modeloTabla;\r\n \r\n\t}<\/pre>\n<p><strong>Paso 21:\u00a0<\/strong>Creamos el m\u00e9todo <strong>BuscarFoto, <\/strong>que es que nos permitir\u00e1 mostrar la fotograf\u00eda del contacto cuando le demos clic en la tabla de consultas:<\/p>\n<pre class=\"lang:java decode:true\">public boolean buscarFoto(String telefono) {\r\n\t\tboolean respuesta = false;\r\n\t\ttry {\r\n\t\t\tejecutador = conector.createStatement();\r\n\t\t\tcapturador = ejecutador\r\n\t\t\t\t\t.executeQuery(\"select foto from contactos where telefono='\"\r\n\t\t\t\t\t\t\t+ telefono + \"';\");\r\n\t\t\tif (capturador.first()) {\r\n\t\t\t\tfoto = capturador.getString(capturador.findColumn(\"foto\"));\r\n\t\t\t\trespuesta = true;\r\n\t\t\t}\r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n \r\n\t\treturn respuesta;\r\n\t}<\/pre>\n<p><strong>Paso 22:<\/strong>\u00a0 ahora crearemos los m\u00e9todos\u00a0<strong>EliminarUsuario y NuevoUsuario\u00a0<\/strong><\/p>\n<pre class=\"lang:java decode:true\">public void nuevoUsuario(String usuario, String pass, int tipo){\r\n\t\ttry {\r\n\t\t\tejecutador=conector.createStatement();\r\n\t\t\tejecutador.execute(\"insert into usuarios values(null,'\"+usuario+\"','\"+pass+\"',\"+tipo+\");\");\r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\npublic void eliminarUsuario(String usuario){\r\n\t\ttry {\r\n\t\t\tejecutador=conector.createStatement();\r\n\t\t\tejecutador.execute(\"delete from usuarios where usuario='\"+usuario+\"';\");\r\n\t\t} catch (SQLException e) {\r\n\t\t\t\/\/ TODO Auto-generated catch block\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}<\/pre>\n<hr \/>\n<p style=\"text-align: center;\"><span style=\"color: #0000ff;\">Antes de continuar con la clase Controlador crearemos una clase llamada CorregirRuta dentro del paquete modelo que quedar\u00eda de la siguiente manera:<\/span><\/p>\n<pre class=\"lang:java decode:true\">import java.util.StringTokenizer;\r\n\r\npublic class CorregirRuta {\r\n\t String ruta, separador, nuevoSeparador; \r\n\t \r\n\t    public CorregirRuta(String laruta, String sep, String nuevoSep)\r\n\t    {\r\n\t        ruta=laruta;\r\n\t        separador=sep;\r\n\t        nuevoSeparador=nuevoSep;\r\n\t    }\r\n\t \r\n\t    public String obtenerRutaCorregidaWindows()\r\n\t    {\r\n\t         StringTokenizer tokens=new StringTokenizer(ruta, separador);\r\n\t         \/\/Para guardar la ruta corregida\r\n\t         String rutaCorregida = new String();\r\n\t         \/\/Contar los tokens (en este caso las carpetas, contado tambien\r\n\t         \/\/ el nombre del archivo seleccionado).\r\n\t         int noTokens = tokens.countTokens();\r\n\t         int i = 1;\r\n\t         do\r\n\t         {      \/\/Agregar el nuevo separador\r\n\t            rutaCorregida += tokens.nextToken()+nuevoSeparador;\r\n\t            i++;\r\n\t         }while(i&lt;noTokens);\r\n\t         \/\/Agregar a la ruta corregida el ultimo token, (nombre del archivo)\r\n\t         rutaCorregida += tokens.nextToken();       \r\n\t         \/\/Mostrar la ruta corregida en la consola\r\n\t        \/\/ System.out.println(rutaCorregida+\"\\n\"+noTokens+ \" tokens\");\r\n\t         return rutaCorregida;\r\n\t    }\r\n}<\/pre>\n<p><span style=\"color: #ff0000;\">esta clase se utilizara para corregir la direcci\u00f3n de la imagen ya que Mysql no reconoce las \u00ab\\\u00bb\u00a0<\/span><\/p>\n<p style=\"text-align: center;\"><strong>Con esto terminamos la Clase modelo ahora solo nos queda dar la acciones a todos los botones del programa para que esta agenda funcione.<\/strong><\/p>\n<p style=\"text-align: center;\"><strong>Le daremos acciones a los botones por Ventana..<\/strong><\/p>\n<p style=\"text-align: left;\"><strong>Paso 23:<\/strong> Creamos la clase Controlador dentro del paquete del mismo Nombre en el cual creamos los siguientes objetos:<\/p>\n<pre class=\"lang:java decode:true\">import java.awt.Point;\r\nimport java.awt.event.ActionEvent;\r\nimport java.awt.event.ActionListener;\r\nimport java.awt.event.KeyEvent;\r\nimport java.awt.event.KeyListener;\r\nimport java.awt.event.MouseAdapter;\r\nimport java.awt.event.MouseEvent;\r\nimport java.awt.event.MouseListener;\r\n\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JFileChooser;\r\nimport javax.swing.JOptionPane;\r\nimport javax.swing.JTable;\r\n\r\nimport modelo.CorregirRuta;\r\nimport modelo.Modelo;\r\nimport vista.VentanaFoto;\r\nimport vista.VentanaNuevoUsuario;\r\nimport vista.VentanaPrincipal;\r\n\r\npublic class Controlador {\r\n       VentanaPrincipal ventana = new VentanaPrincipal();\r\n\tModelo modelo = new Modelo();\r\n\tString usuarioActivo = null;\r\n\tString url;\r\n\tString foto;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: left;\"><strong>Paso 24: \u00a0<\/strong>Crearemos el\u00a0m\u00e9todo <strong>AccionesBotones()<\/strong>\u00a0dentro de la clase Controlador \u00a0y agregaremos las acciones de los botones, Empezaremos con <strong>LOGIN:<\/strong><\/p>\n<pre class=\"lang:java decode:true\">public void accionesBotones(){\r\nventana.panelLogin.btnLogin.addActionListener(new ActionListener() {\r\n \r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\t\/\/ TODO Auto-generated method stub\r\n\t\t\t\tString usuario = ventana.panelLogin.txtUsuario.getText();\r\n\t\t\t\tString password = ventana.panelLogin.txtPass.getText();\r\n\t\t\t\tif (modelo.login(usuario, password)) {\r\n\t\t\t\t\tif (modelo.tipoUsuario == 0) {\r\n\t\t\t\t\t\tventana.cartas.show(ventana.panelCarta, \"todo\");\r\n\t\t\t\t\t\tventana.barraMenu.setVisible(true);\r\n\t\t\t\t\t\tventana.mnAgenda.setEnabled(true);\r\n\t\t\t\t\t\tventana.mnUsuarios.setEnabled(true);\r\n\t\t\t\t\t\tventana.pestanas.setEnabledAt(0,true);\r\n\t\t\t\t\t\tventana.pestanas.setEnabledAt(1,true);\r\n\t\t\t\t\t\tventana.pestanas.setEnabledAt(2,true);\r\n\t\t\t\t\t\tusuarioActivo=usuario;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tventana.barraMenu.setVisible(true);\r\n\t\t\t\t\t\tventana.pestanas.setEnabledAt(0,false);\r\n\t\t\t\t\t\tventana.pestanas.setEnabledAt(1,false);\r\n\t\t\t\t\t\tventana.pestanas.setEnabledAt(2,false);\t\t\t\t\t\t\r\n\t\t\t\t\t\tventana.pestanas.setSelectedIndex(3);\r\n\t\t\t\t\t\tventana.cartas.show(ventana.panelCarta, \"todo\");\r\n\t\t\t\t\t\tusuarioActivo=usuario;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tJOptionPane.showMessageDialog(null, \"Acceso Denegado\",\r\n\t\t\t\t\t\t\tnull, JOptionPane.ERROR_MESSAGE);\r\n\t\t\t\t\tventana.panelLogin.txtUsuario.setText(\"\");\r\n\t\t\t\t\tventana.panelLogin.txtPass.setText(\"\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});<\/pre>\n<p><strong>Paso 25: \u00a0<\/strong>Le damos ahora acciones a los botones del <strong>PanelAltas<\/strong> cabe mencionar que le agregamos acci\u00f3n\u00a0aun componente <strong>JLABEL<\/strong> del tipo <strong>MouseListener<\/strong><\/p>\n<pre class=\"lang:java decode:true\">ventana.panelAltas.btnGrabar.addActionListener(new ActionListener() {\r\n\t \r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\tString nombre = ventana.panelAltas.txtNombre.getText();\r\n\t\tString apellido = ventana.panelAltas.txtApellido.getText();\r\n\t\tString telefono = ventana.panelAltas.txtTelefono.getText();\r\n\t\tString correo = ventana.panelAltas.txtCorreo.getText();\r\n\t\tString facebook = ventana.panelAltas.txtFacebook.getText();\r\n\t\tString twitter = ventana.panelAltas.txtTwitter.getText();\r\n\t\tString instagram = ventana.panelAltas.txtInstagram.getText();\r\n\t\tmodelo.altas(nombre, apellido, telefono, correo, facebook,\r\n\t\t\t\ttwitter, instagram, url);\r\n\t\tventana.panelAltas.txtNombre.setText(\"\");\r\n\t\tventana.panelAltas.txtApellido.setText(\"\");\r\n\t\tventana.panelAltas.txtTelefono.setText(\"\");\r\n\t\tventana.panelAltas.txtCorreo.setText(\"\");\r\n\t\tventana.panelAltas.txtFacebook.setText(\"\");\r\n\t\tventana.panelAltas.txtTwitter.setText(\"\");\r\n\t\tventana.panelAltas.txtInstagram.setText(\"\");\r\n\t\tventana.panelAltas.lblFoto.setIcon(null);\r\n\r\n\t}\r\n});\r\nventana.panelAltas.btnCancelar.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tventana.panelAltas.txtNombre.setText(\"\");\r\n\t\tventana.panelAltas.txtApellido.setText(\"\");\r\n\t\tventana.panelAltas.txtTelefono.setText(\"\");\r\n\t\tventana.panelAltas.txtCorreo.setText(\"\");\r\n\t\tventana.panelAltas.txtFacebook.setText(\"\");\r\n\t\tventana.panelAltas.txtTwitter.setText(\"\");\r\n\t\tventana.panelAltas.txtInstagram.setText(\"\");\r\n\t\tventana.panelAltas.lblFoto.setIcon(null);\r\n\t}\r\n});\r\nventana.panelAltas.lblFoto.addMouseListener(new MouseListener() {\r\n\r\n\t@Override\r\n\tpublic void mouseReleased(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mousePressed(MouseEvent arg0) {\r\n\t\tJFileChooser eleccion = new JFileChooser();\r\n\r\n\t\tint opc;\r\n\t\topc = eleccion.showOpenDialog(null);\r\n\t\tif (opc == eleccion.APPROVE_OPTION) {\r\n\t\t\turl = eleccion.getSelectedFile().toString();\r\n\r\n\t\t\tventana.panelAltas.foto = new ImageIcon(url);\r\n\t\t\tventana.panelAltas.lblFoto.setText(\"\");\r\n\t\t\tventana.panelAltas.lblFoto.setIcon(ventana.panelAltas.foto);\r\n\t\t}\r\n\t\tCorregirRuta ruta1 = new CorregirRuta(url, \"\\\\\", \"\\\\\\\\\");\r\n\t\tfoto = ruta1.obtenerRutaCorregidaWindows();\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mouseExited(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mouseEntered(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mouseClicked(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n});<\/pre>\n<p><strong>Paso 26: <\/strong>Ahora las acciones de los elementos de BAJAS.<\/p>\n<pre class=\"lang:java decode:true\">ventana.panelBajas.btnBuscar.addActionListener(new ActionListener() {\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\t\/\/ TODO Auto-generated method stub\r\n\t\t\t\tString telefono = ventana.panelBajas.txtTelefono.getText();\r\n\t\t\t\tif (modelo.buscar(telefono)) {\r\n\t\t\t\t\tventana.panelBajas.txtNombre.setText(modelo.nombre);\r\n\t\t\t\t\tventana.panelBajas.txtApellido.setText(modelo.apellido);\r\n\t\t\t\t\tventana.panelBajas.txtCorreo.setText(modelo.correo);\r\n\t\t\t\t\tventana.panelBajas.txtFacebook.setText(modelo.facebook);\r\n\t\t\t\t\tventana.panelBajas.txtTwitter.setText(modelo.twitter);\r\n\t\t\t\t\tventana.panelBajas.txtInstagram.setText(modelo.instagram);\r\n\t\t\t\t\tfoto = modelo.foto;\r\n\t\t\t\t\tventana.panelBajas.foto = new ImageIcon(foto);\r\n\t\t\t\t\tventana.panelBajas.lblFoto.setIcon(ventana.panelBajas.foto);\r\n\t\t\t\t\tventana.panelBajas.btnGrabar.setEnabled(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tJOptionPane.showMessageDialog(null,\r\n\t\t\t\t\t\t\t\"Telefono no Localizado\");\r\n\t\t\t\t\tventana.panelBajas.txtTelefono.setText(\"\");\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tventana.panelBajas.btnGrabar.addActionListener(new ActionListener() {\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\tString telefono = ventana.panelBajas.txtTelefono.getText();\r\n\t\t\t\tmodelo.bajas(telefono);\r\n\t\t\t\tventana.panelBajas.txtNombre.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtApellido.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtCorreo.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtFacebook.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtTwitter.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtInstagram.setText(\"\");\r\n\t\t\t\tventana.panelBajas.lblFoto.setIcon(null);\r\n\t\t\t\tventana.panelBajas.txtTelefono.setText(\"\");\r\n\t\t\t\tventana.panelBajas.btnGrabar.setEnabled(false);\r\n\r\n\t\t\t}\r\n\t\t});\r\n\t\tventana.panelBajas.btnCancelar.addActionListener(new ActionListener() {\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\tventana.panelBajas.txtNombre.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtApellido.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtCorreo.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtFacebook.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtTwitter.setText(\"\");\r\n\t\t\t\tventana.panelBajas.txtInstagram.setText(\"\");\r\n\t\t\t\tventana.panelBajas.lblFoto.setIcon(null);\r\n\t\t\t\tventana.panelBajas.txtTelefono.setText(\"\");\r\n\t\t\t\tventana.panelBajas.btnGrabar.setEnabled(false);\r\n\r\n\t\t\t}\r\n\t\t});<\/pre>\n<p><strong>Paso 27:\u00a0<\/strong>Ahora creamos las acciones de <strong>CAMBIOS.<\/strong><\/p>\n<pre class=\"lang:default decode:true\">ventana.panelCambios.btnBuscar.addActionListener(new ActionListener() {\r\n\t \r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tString telefono = ventana.panelCambios.txtTelefono.getText();\r\n\t\tif (modelo.buscar(telefono)) {\r\n\t\t\tventana.panelCambios.txtNombre.setText(modelo.nombre);\r\n\t\t\tventana.panelCambios.txtApellido.setText(modelo.apellido);\r\n\t\t\tventana.panelCambios.txtCorreo.setText(modelo.correo);\r\n\t\t\tventana.panelCambios.txtFacebook.setText(modelo.facebook);\r\n\t\t\tventana.panelCambios.txtTwitter.setText(modelo.twitter);\r\n\t\t\tventana.panelCambios.txtInstagram.setText(modelo.instagram);\r\n\t\t\tfoto = modelo.foto;\r\n\t\t\tventana.panelCambios.foto = new ImageIcon(foto);\r\n\t\t\tventana.panelCambios.lblFoto\r\n\t\t\t\t\t.setIcon(ventana.panelCambios.foto);\r\n\t\t\tventana.panelCambios.btnGrabar.setEnabled(true);\r\n\t\t\tventana.panelCambios.txtTelefono.setEditable(false);\r\n\t\t} else {\r\n\t\t\tJOptionPane.showMessageDialog(null,\r\n\t\t\t\t\t\"Telefono no Localizado\");\r\n\t\t\tventana.panelCambios.txtTelefono.setText(\"\");\r\n\r\n\t\t}\r\n\t}\r\n});\r\nventana.panelCambios.btnCancelar\r\n\t\t.addActionListener(new ActionListener() {\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\t\tventana.panelCambios.txtNombre.setText(\"\");\r\n\t\t\t\tventana.panelCambios.txtApellido.setText(\"\");\r\n\t\t\t\tventana.panelCambios.txtCorreo.setText(\"\");\r\n\t\t\t\tventana.panelCambios.txtFacebook.setText(\"\");\r\n\t\t\t\tventana.panelCambios.txtTwitter.setText(\"\");\r\n\t\t\t\tventana.panelCambios.txtInstagram.setText(\"\");\r\n\t\t\t\tventana.panelCambios.lblFoto.setIcon(null);\r\n\t\t\t\tventana.panelCambios.txtTelefono.setText(\"\");\r\n\t\t\t\tventana.panelCambios.btnGrabar.setEnabled(false);\r\n\t\t\t\tventana.panelCambios.txtTelefono.setEditable(true);\r\n\r\n\t\t\t}\r\n\t\t});\r\nventana.panelCambios.btnGrabar.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\tString telefono = ventana.panelCambios.txtTelefono.getText();\r\n\t\tString nombre = ventana.panelCambios.txtNombre.getText();\r\n\t\tString apellido = ventana.panelCambios.txtApellido.getText();\r\n\t\tString correo = ventana.panelCambios.txtCorreo.getText();\r\n\t\tString facebook = ventana.panelCambios.txtFacebook.getText();\r\n\t\tString twitter = ventana.panelCambios.txtTwitter.getText();\r\n\t\tString instagram = ventana.panelCambios.txtInstagram.getText();\r\n\r\n\t\tmodelo.cambios(nombre, apellido, correo, telefono, facebook,\r\n\t\t\t\ttwitter, instagram, foto,telefono);\r\n\r\n\t\tventana.panelCambios.txtNombre.setText(\"\");\r\n\t\tventana.panelCambios.txtApellido.setText(\"\");\r\n\t\tventana.panelCambios.txtCorreo.setText(\"\");\r\n\t\tventana.panelCambios.txtFacebook.setText(\"\");\r\n\t\tventana.panelCambios.txtTwitter.setText(\"\");\r\n\t\tventana.panelCambios.txtInstagram.setText(\"\");\r\n\t\tventana.panelCambios.lblFoto.setIcon(null);\r\n\t\tventana.panelCambios.txtTelefono.setText(\"\");\r\n\t\tventana.panelCambios.btnGrabar.setEnabled(false);\r\n\t\tventana.panelCambios.txtTelefono.setEditable(true);\r\n\t\tventana.panelCambios.lblFoto.setIcon(null);\r\n\r\n\t}\r\n});\r\n\r\nventana.panelCambios.lblFoto.addMouseListener(new MouseListener() {\r\n\r\n\t@Override\r\n\tpublic void mouseReleased(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mousePressed(MouseEvent arg0) {\r\n\t\tJFileChooser eleccion = new JFileChooser();\r\n\r\n\t\tint opc;\r\n\t\topc = eleccion.showOpenDialog(null);\r\n\t\tif (opc == eleccion.APPROVE_OPTION) {\r\n\t\t\turl = eleccion.getSelectedFile().toString();\r\n\r\n\t\t\tventana.panelCambios.foto = new ImageIcon(url);\r\n\t\t\tventana.panelCambios.lblFoto.setText(\"\");\r\n\t\t\tventana.panelCambios.lblFoto\r\n\t\t\t\t\t.setIcon(ventana.panelCambios.foto);\r\n\t\t}\r\n\t\tCorregirRuta ruta1 = new CorregirRuta(url, \"\\\\\", \"\\\\\\\\\");\r\n\t\tfoto = ruta1.obtenerRutaCorregidaWindows();\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mouseExited(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mouseEntered(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void mouseClicked(MouseEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n});<\/pre>\n<p><strong>Paso 28: <\/strong>Ahora las acciones de Consultas, en esta clase no usaremos ning\u00fan bot\u00f3n si no que le diremos al <strong>JTextField<\/strong>\u00a0 y a nuestra <strong>JTABLE\u00a0<\/strong>que hagan las acciones..<\/p>\n<pre class=\"lang:java decode:true\">ventana.panelConsultas.txtTelefono.addKeyListener(new KeyListener() {\r\n\t \r\n\t@Override\r\n\tpublic void keyTyped(KeyEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void keyReleased(KeyEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tString telefono = ventana.panelConsultas.txtTelefono.getText();\r\n\r\n\t\tventana.panelConsultas.tabla.setModel(modelo\r\n\t\t\t\t.consultas(telefono));\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic void keyPressed(KeyEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\r\n\t}\r\n});\r\nventana.panelConsultas.tabla.addMouseListener(new MouseAdapter() {\r\n\r\n\tpublic void mousePressed(MouseEvent Mouse_evt) {\r\n\t\tJTable table = (JTable) Mouse_evt.getSource();\r\n\t\tPoint point = Mouse_evt.getPoint();\r\n\t\tint row = table.rowAtPoint(point);\r\n\t\tif (Mouse_evt.getClickCount() == 2) {\r\n\t\t\tString telefono = ventana.panelConsultas.tabla.getValueAt(\r\n\t\t\t\t\tventana.panelConsultas.tabla.getSelectedRow(), 2)\r\n\t\t\t\t\t.toString();\r\n\r\n\t\t\tif (modelo.buscarFoto(telefono)) {\r\n\t\t\t\tfoto = modelo.foto;\r\n\t\t\t\tImageIcon imgfoto = new ImageIcon(foto);\r\n\t\t\t\tnew VentanaFoto(imgfoto);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});<\/pre>\n<p><strong>Paso 29: P<\/strong>or ultimo las acciones del los <strong>MenuItem<\/strong> que son los botones de los <strong>Menus:<\/strong><\/p>\n<pre class=\"lang:java decode:true\">ventana.mnNuevoUser.addActionListener(new ActionListener() {\r\n\t\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\tnew VentanaNuevoUsuario();\r\n\t\t\r\n\t}\r\n});\r\nventana.mnEliminarUser.addActionListener(new ActionListener() {\r\n\t\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\tString usuario=JOptionPane.showInputDialog(\"Ingresa el Usuario a Eliminar\");\r\n\t\tif(usuario.equals(usuarioActivo)){\r\n\t\t\tJOptionPane.showMessageDialog(null, \"Este usuario no se Puede Eliminar \\npor que esta Activo\");\r\n\t\t}else{\t\t\t\t\t\r\n\t\t\tint opcion=JOptionPane.showConfirmDialog(null, \"Deseas Eliminar a este Usuario?\");\r\n\t\t\tif(opcion==0){\r\n\t\t\t\tmodelo.eliminarUsuario(usuario);\r\n\t\t\t\tusuarioActivo=\"\";\r\n\t\t\t\tJOptionPane.showMessageDialog(null, \"!!Usuario Eliminado!!\");\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t}\r\n});\r\nventana.mnCerrarSesion.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\tventana.cartas.show(ventana.panelCarta, \"login\");\r\n\t\tventana.barraMenu.setVisible(false);\r\n\t\tventana.mnAgenda.setEnabled(false);\r\n\t\tventana.mnUsuarios.setEnabled(false);\r\n\t\tusuarioActivo=\"\";\r\n\t}\r\n});\r\nventana.mnAltas.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tventana.pestanas.setSelectedIndex(0);\r\n\t}\r\n});\r\nventana.mnBajas.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tventana.pestanas.setSelectedIndex(1);\r\n\t}\r\n});\r\nventana.mnCambios.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tventana.pestanas.setSelectedIndex(2);\r\n\t}\r\n});\r\nventana.mnConsultas.addActionListener(new ActionListener() {\r\n\r\n\t@Override\r\n\tpublic void actionPerformed(ActionEvent arg0) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tventana.pestanas.setSelectedIndex(3);\r\n\t}\r\n});\r\n}\r\n\r\n}<\/pre>\n<p style=\"text-align: center;\"><strong>PASO FINAL<\/strong><\/p>\n<p style=\"text-align: left;\">Bueno ya con esto hemos terminado nuestra Agenda Telef\u00f3nica, solo queda modificar\u00a0nuestra clase AUXILIAR en el Paquete Controlador. crear el objeto de Controlador y mandar Llamar el m\u00e9todo accionesBotones. y obtendremos.<\/p>\n<pre class=\"lang:java decode:true \">package controlador;\r\n\r\npublic class Auxiliar {\r\n\tpublic static void main(String[] args) {\r\n\t\tControlador objeto=new Controlador();\r\n\t\tobjeto.accionesBotones();\r\n\t}\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #0000ff;\">\u00a0<\/span><strong><span style=\"color: #0000ff;\">NOTA: Para que se pueda ver la Imagen deber\u00e1s\u00a0crear la carpeta Im\u00e1genes\u00a0dentro del proyecto, en la mismo ubicaci\u00f3n\u00a0de las carpetas:<\/span><\/strong><\/p>\n<p style=\"text-align: left;\"><a href=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/carpeta-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-169 aligncenter\" src=\"http:\/\/www.profeluismitre.com.mx\/Ejemplos\/wp-content\/uploads\/2016\/11\/carpeta-1.png\" alt=\"carpeta\" width=\"204\" height=\"136\" \/><\/a><\/p>\n<p style=\"text-align: center;\">@autor Prof. Luis. Mitre<\/p>\n<p><center><a title=\"\u00bfQuien visita mi web?\" href=\"http:\/\/www.cerotec.net\/estadisticas-86579\/profeluismitre.com.mx\"><img decoding=\"async\" src=\"http:\/\/www.cerotec.net\/contador.php?t=1&amp;s=3&amp;i=86579\" alt=\"Contador de visitas y estad\u00edsticas\" \/><\/a><\/center>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>@Autor: Prof. Luis Mitre Esta Practica es una Agenda Telef\u00f3nica que almacena la informaci\u00f3n en una base de datos Local en Mysql. Paso 1.\u00a0Creamos un nuevo Proyecto java dando Click en File-New-Java Proyect en Eclipse. Paso 2.\u00a0Creamos los Paquetes Modelo, Vista y Controlador en el Proyecto creado. Iniciaremos creando la parte visual de nuestro Proyecto. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-118","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=\/wp\/v2\/pages\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=118"}],"version-history":[{"count":33,"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=\/wp\/v2\/pages\/118\/revisions"}],"predecessor-version":[{"id":292,"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=\/wp\/v2\/pages\/118\/revisions\/292"}],"wp:attachment":[{"href":"https:\/\/profeluismitre.com.mx\/Ejemplos\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}