Download Descargar
Document related concepts
no text concepts found
Transcript
Corporación universitaria del Caribe CECAR MÓDULO ELECTIVA PROFESIONAL II WILSON DAVID FLOREZ BARBOZA Ingeniero de Sistemas Especialista administración de la informática educativa Licenciatura en Educación Básica con Énfasis en Tecnología e Informática Sincelejo – Sucre 2013 TABLA DE CONTENIDO Pág. INTRODUCCIÓN JUSTIFICACION REFERENTES TEORICOS INSTRUCCIONES DE MANEJO UNIDAD 1 1. CONCEPTOS BASICOS DE PROGRAMACION ORIENTADA A OBJETOS (POO). 1.1 Conceptualización de la POO. 1.1.1 Definiciones 1.1.2 Importancia de la POO. 1.1.3 Diferencia con programación estructurada. 1.1.4 Lenguajes de programación 1.1.5 ¿qué es un objeto? 1.2 Características de la POO. 1.2.1 Abstracción. 1.2.2 Clases y sus componentes. 1.2.3 Mensaje. 1.2.4 Polimorfismo. 1.2.5 Herencia. 1.2.6 Encapsulación. 1.3 Modificadores de acceso 1.4 Los métodos constructores, get y set de una clase. El método constructor de una clase 1.5 Diagramas de clases 1.6 El lenguaje java 1.6.1 La comunidad de java 1.6.2 Netbeans como IDE de desarrollo 1.6.3 Variables y tipos de datos 1.6.4 Estructuras de control 1.6.5 Concepto de librerías. 1.6.6 Definición de una clase 1.6.7 Definición de un objeto de programación 1.6.8 Objeto del mundo real. Vs objeto de programación 1.6.9 Ejemplo del uso de otras clases. UNIDAD 2: 2. DISEÑO DE INTERFACES GRAFICAS CON LOS OBJETOS GRAFICOS DE LA LIBRERÍA SWING Y VALIDACION DE INFORMACION. 2.1 Consideración en el diseño de una GUI: 2.2 Contenedores y componentes gráficos (Objetos gráficos) 2.2.1 Formularios: Clase jFrame 2.2.2 Cajas de textos: Clase jTextField. 2.2.3 Etiquetas: Clase jLabel. 2.2.4 Listas despegables: Clase jComboBox 2.2.5 Áreas de textos: Clase jTextArea. 2.2.6 Botones de opciones: Clase jRadioButton 2.2.7 Botones: Clase jButton 2.2.8 Métodos importante en los componentes 2.2.9 Mas componentes, ejemplo con Netbeans 2.2.10 El método initcomponents 2.2.11 Eventos 2.3 Creación de clase de validación. 2.4 Validación de los objetos gráficos de un formulario utilizando la clase de validación creada en la sección anterior. UNIDAD 3 3. COMUNICACIÓN A BASE DE DATOS Y REPORTES 3.1 Creación de clases de comunicación JAVA con MYSQL 3.2 Guardar información en la base de datos de una interfaz grafica validada usando la clase Conexión 3.3 Actualizar información en la base de datos de una interfaz grafica validada 3.4 Eliminar información en la base de datos de una interfaz grafica validada 3.5 Buscar información por llave primaria desde una base de datos de una interfaz grafica INTRODUCCIÓN En este modulo se explicará la programación orientada a objetos que se desarrollan bajo un contexto aplicado al igual que en las matemáticas y la física. El objetivo de este modulo es brindarle al estudiante una noción de cómo están hechos los sistemas de información y de paso poder animarlo a desarrollar sus propios aplicativos. Es conveniente que el licenciado de informática pueda ofrecerle a sus futuros educandos el enfoque de programador ante el manejo de los sistemas informáticos. Centrarse en este aspecto es sentirse con mayor propiedad y control hacia las aplicaciones informáticas. Durante el desarrollo del modulo el estudiante irá adquiriendo conceptos básicos de programación orientada a objetos, manejo de interfaces gráficas y comunicación con las bases de datos con la ayuda de entornos de desarrollo (IDE) o herramientas gráficas. La mayoría de validaciones, conexiones a base de datos, sentencias para manipular las bases de datos ya están programados, lo que se busca primordialmente es que el estudiante se acostumbre a un estándar de trabajo al momento de desarrollar sus interfaces gráficas, conexiones a bases de datos, entre otros. La buena práctica de estándares de trabajo para desarrollo de sistemas de información hará que el estudiante le sea tan fácil como armar un rompecabezas, sin dejar de lado que existen muchas formas de hacerlo. La programación orientada a objetos posee una característica que concede mucha ventaja al momento de desarrollar y es la abstracción que como se define en Wikipedia: “el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (Característica de caja negra) ” 1. Teniendo en cuenta esta definición las cosas serán mucho más fáciles para el estudiante al momento de desarrollar las lecciones propuestas. 1 https://es.wikipedia.org/wiki/Abstracci%C3%B3n_(inform%C3%A1tica) Es indispensable que los educadores con énfasis en la informática otorguen a sus futuros educandos una perspectiva aplicada hacia los sistemas informáticos, de esta manera podrá despertar su interés para que posteriormente se profundice en conocimientos afines en un ámbito profesional como la ingeniería. Las soluciones que puede ofrecer el desarrollo de sistemas de información son incontables en cuanto al manejo de la información en general ya sea para controlar procesos administrativos que el futuro docente deba desempeñar o para implementar metodologías más didácticas en sus clases. JUSTIFICACIÓN En la globalización, la tecnología informática juega un papel importante porque permite obtener información desde cualquier parte del mundo. Todos los profesionales deben estar en sintonía con este tema especialmente aquellos con carreras afines, este modulo busca que el estudiante de licenciatura en informática profundice en este tema de desarrollo de sistemas de información y con ellos desarrolle habilidades en el manejo de todas las herramientas de información. Dentro del perfil de egresado en licenciatura en informática se encuentra que éste debe propiciar proyectos investigativos que contribuyan a la solución de problemas de la comunidad educativa, es ahí donde este modulo proporcionará a los estudiantes tener una visión más amplia en cuanto al tema tecnológico y le permitirán crear proyectos más enriquecedores. Los futuros egresados de licenciatura en informática podrán transferir estos conocimientos a sus estudiantes, permitiendo que ellos tengan una visión del desarrollo de sistemas de información, y una posible tendencia vocacional. COMPETENCIAS QUE PROMUEVEN LA ASIGNATURA METACOGNITIVA Utiliza herramientas informáticas para el diseño e implantación de un sistema de información en el ámbito escolar, desarrollado bajo paradigma POO. RELACIONAL Aplica los conocimientos obtenidos a situaciones laborales concretas utilizando los procedimientos adecuados, para solucionar problemas de manera autónoma y transferir las situaciones adquiridas a situaciones novedosas. TECNOLÓGICA Crea sistemas de información desarrollado bajo paradigma POO en el contexto educativo. ARGUMENTATIVA Diferencia la POO del resto de paradigmas de programación REFERENTES TEORICOS Con el transcurso de los años se ha venido dando la necesidad de innovar e investigar herramientas y recursos que sirvan y faciliten la evolución de la informática, y que por medio de éstos las personas obtengan una mejor enseñanza y apliquen de una manera correcta todos los medios tecnológicos que se nos han dado. Un ejemplo de todas esas necesidades que se han presentado ha sido facilitar para las empresas, colegios, entre otros, el implementar y diseñar sistemas de información que sean de gran ayuda. Es por esto que cada día se busca una mejor herramienta para su aprovechamiento eficaz. Entre los lenguajes de programación encontramos a Java, que es un lenguaje de programación orientado a objetos desarrollado por Sun MicroSystems, una compañía reconocida por sus estaciones de trabajo UNIX de alta calidad. Java es fundamentado en c++, el lenguaje java se diseño para ser pequeño, sencillo y portátil a través de plataformas y sistemas operativos, tanto a nivel de código fuente como binario, lo que significa que los programas java (applets y aplicaciones), pueden ejecutarse en cualquier computadora que tenga instalada una maquina virtual de java. A pesar que java es un lenguaje de programación orientado a objetos, también puede ser utilizado como un lenguaje estructurado, lo cual se hace necesario para poder iniciar nuestro estudio de conceptos fundamentales de programación. [1] Java es un lenguaje de programación y la primera plataforma informática creada por Sun Microsystems en 1995. Es la tecnología subyacente que permite el uso de programas punteros, como herramientas, juegos y aplicaciones de negocios. Java se ejecuta en más de 850 millones de ordenadores personales de todo el mundo y en miles de millones de dispositivos, como dispositivos móviles y aparatos de televisión. [2] Todos los sistemas de información guardan su información en los sistemas de gestión de base de datos SGBD, MYSQL se ha convertido en uno de los principales SGBD a nivel mundial y fue desarrollada por MySQL AB, una empresa sueca 2, MySQL es un sistema de gestión de base de datos relacional, multiusuario con más de seis millones de instalaciones. MySQL es muy utilizado en aplicaciones web como drupal o phpBB, en plataformas (Linux/Windows – Apache-MySQL-php/perl/python) y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. [3] Para facilitarnos el trabajo de desarrollo de sistemas de información, existen varios entornos de desarrollo, uno de los mas importante es NetBeans, el cual es una plataforma para el desarrollo de aplicaciones de escritorio usando el lenguaje Java, además brinda facilidades para la comunicación de las bases de datos, especialmente MYSQL. En este entorno de desarrollo integrado (IDE) se pueden desarrollar también otros lenguajes de programación como C y C++ mediante los cuales se pueden crear aplicaciones gráficas, por ejemplo usando librerías como wxWidgets.[4] Un sistemas de información que no permita exportar resultados para imprimir, sería un sistemas de información de muy poca utilidad, es por eso que existen muchos reporteadores entre los cuales encontramos a IReport que es un constructor / diseñador de informes visual, poderoso, intuitivo y fácil de usar para JasperReports escrito en Java. Este instrumento permite que los usuarios corrijan visualmente informes complejos con cartas, imágenes, subinformes, y mucho más. iReport está además integrado con JFreeChart, una de la biblioteca gráficas OpenSource más difundida para Java. Los datos para imprimir pueden ser recuperados por varios caminos incluso múltiples uniones JDBC, TableModels, JavaBeans, XML, entre otros. [5] 2 Origen de MYSQL http://books.google.com.co/books?id=cNTIoRAtE1kC&pg=PT1&dq=que+es+el+lenguaj e+mysql&hl=es&sa=X&ei=fVHfUeCPD7Gn4AOu6YHYBQ&ved=0CDMQ6AEwAQ FORMAS DE ABORDAR EL CONTENIDO DEL MODULO Para el desarrollo exitoso de este módulo es importante el ritmo y secuenciación del trabajo auto dirigido, de tal forma que puedas trabajarlo en casa y posteriormente socializarlo en clases con tu profesor, pero para ello debes tener disponibilidad de tiempo, alto grado de responsabilidad e iniciativa con cada una de las actividades programadas. También cabe destacar, que la información consignada en el módulo puede ser ampliada para que usted enriquezca los conceptos que se desarrollan a lo largo del módulo, por lo tanto se le recomienda que consulten las citas referenciadas en la bibliografía. Tenga presente las siguientes anotaciones: Considere el módulo como una herramienta que le permitirá fortalecer sus conocimientos sobre la POO y desarrollo de sistemas de información. Lea y estudie cada uno de los temas con anticipación a la sesión con el tutor, para que llegue con inquietudes y se genere la discusión a partir de estas. La constitución de grupos de estudio, que se han denominado CIPAS, es altamente recomendable, dado que no todos asimilan de la misma manera, por tal razón es conveniente concretar con otros compañeros algunos puntos clave de las lecturas y análisis de la información del módulo. Además es importante analizar cada uno de los puntos de vistas de los integrantes del CIPA, el cual nos ayudará a afianzar y enriquecer nuestra propia comprensión sobre los temas desarrollados en el módulo. Complemente sus actividades con las consultas sugeridas en documentos, sitios web, que fortalezcan el estudio de los temas propuestos en el módulo. Importante: En este modulo se utilizará el diagrama entidad relación del observador del alumno, el cual fue desarrollado en el modulo de base de datos. UNIDAD 1 1. CONCEPTOS BASICOS DE PROGRAMACION ORIENTADA A OBJETOS (POO) 1 Conceptualización de la POO. 1.1.1 Definiciones 1.1.2 Importancia de la POO. 1.1.3 Diferencia con programación estructurada. 1.1.4 Lenguajes de programación 1.1.5 ¿qué es un objeto? 1.2 Características de la POO. 1.2.1 Abstracción. 1.2.2 Clases y sus componentes. 1.2.3 Mensaje. 1.2.4 Polimorfismo. 1.2.5 Herencia. 1.2.6 Encapsulación. 1.3 Modificadores de acceso 1.4 Los métodos constructores, get y set de una clase. El método constructor de una clase 1.5 Diagramas de clases 1.6 El lenguaje java 1.6.1 La comunidad de java 1.6.2 Netbeans como IDE ( Integrated Development Environment) de desarrollo 1.6.3 Variables y tipos de datos 1.6.4 Estructuras de control 1.6.5 Concepto de librerías. 1.6.6 Definición de una clase 1.6.7 Definición de un objeto de programación 1.6.8 Objeto del mundo real. Vs objeto de programación PRESENTACIÓN En esta unidad trataremos todo el concepto de programación orientada a objetos POO, sus características y las consideraciones para trabajar en el lenguaje java. Además se expondrá la diferencia entre programación estructura que han trabajado previamente en el modulo de algoritmos con la POO. PLANTEAMIENTO DEL PROBLEMA ¿Cómo la POO puede fundamentar el conocimiento de los licenciados para que desarrollen los cimientos en la creación de los sistemas de información? COMPETENCIAS ESPECÍFICAS Identifica la importancia de la POO en el desarrollo de software. Interpreta y maneja las características de la POO Creación e instanciación de clases a partir de los objetos del mundo real. DINÁMICA PARA CONSTRUIR EL CONOCIMIENTOS ACTIVIDAD PREVIA: Trabajo independiente Realiza un resumen sobre el tema POO Investiga la diferencia entre programación estructurada y POO. CONCEPTOS BASICOS DE PROGRAMACION ORIENTADA A OBJETOS (POO) 1.1 CONCEPTUALIZACION DE LA POO. 1.1.1 Definiciones La Programación Orientada a Objetos POO (OOP Object-oriented programming en inglés). Según Luis Joyanes Aguilar (Programación orientada a objetos 1996): “La orientación a objetos puede describirse como el conjunto de disciplinas… que desarrollan y modernizan sistemas de información que facilita la construcción de sistemas complejos a partir de componentes… proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.” La Wikipedia lo defino como “un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos”. En otras palabras es un paradigma de programación que permite la abstracción del mundo real mediante la utilización de objetos para el diseño de sistemas de información, es una técnica que permite modelar el mundo que nos rodea y las relaciones existentes entre los mismos desde nuestro punto de vista para convertirlas en lenguaje de máquina. 1.1.2 Importancia de la POO Algunas de las causas por la cual la POO esta tan difundida a nivel mundial, y es la base de los actuales sistemas de información son las siguientes: Mantenibilidad: Debido a la sencillez para abstraer el problema, los programas orientados a objetos son más sencillos de leer y comprender, debido a que permiten ocultar detalles de implementación dejando visibles sólo aquellos detalles más relevantes. [11] Reusabilidad: Los mecanismos de encapsulación de la POO soportan un alto grado de reutilización de código, que se incrementa por sus mecanismos de herencia [10] Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos permiten hacer modificaciones de una forma muy sencilla. Escalabilidad: le permite a un sistema un crecimiento adaptable manteniendo la calidad y la facilidad de trabajo continuo y fluido. Facilita el trabajo en equipo. La abstracción de los objetos del mundo real permite crear sistemas de información complejos. 1.1.3 Diferencia con programación estructurada Según Francisco A. Martínez Gil, Gregorio Martín Quetglá. explican que “la programación estructurada fue históricamente la primera manera universalmente aceptada de organizar un programa que cumpliera con los objetivos de ser fácil y comprender leyendo el propio código… fácil de depurar(localizar errores del programa)… ser fácil de mantener (ampliar con nuevas especificaciones o modificar ya existentes)… permitir trabajo en equipo sobre un mismo programa”; [12] sin embargo, con el avance de la tecnología y los sistemas informáticos la implantación de esta técnica de programación no presentaba una solución eficiente ni eficaz para resolver los requerimientos de los sistemas de información actuales. La programación estructurada presenta algunas dificultades como: Distinta abstracción del mundo. Se centra en el comportamiento, normalmente representado por verbos, mientras que nuestra mente se centra en los seres, a los que, normalmente, identificamos con sustantivos. Dificultad en modificación y actualización. Los programas suelen tener datos compartidos por varios subprogramas, esto puede provocar que cualquier ligera modificación en un módulo afecte indirectamente al resto. Dificultad en mantenimiento. Es complicado encontrar todos los errores en grandes aplicaciones, lo que origina que muchos no aparezcan hasta estar la aplicación en explotación. [15] Al contrario que la programación estructurada que enfatiza en los algoritmos, la POO enfatiza en los datos. En lugar de intentar ajustar un problema al enfoque procedimental de un lenguaje, POO intenta ajustar el lenguaje al problema. La idea es diseñar formatos de datos que se correspondan con las características esenciales de un problema. Los lenguajes orientados combinan en una única unidad o módulo, tanto los datos como las funciones que operan sobre esos datos. Tal unidad se llama objeto. Si se desea modificar los datos de un objeto, hay que realizarlo mediante las funciones miembros del objeto. Cuando se trata de resolver un problema con orientación a objetos, dicho problema no se descompone en funciones como en programación estructurada tradicional, sino en objetos. El pensar en términos de objetos tiene una gran ventaja debido a que se asocian los objetos del problema a los objetos del mundo real. [13] 1.1.4 Lenguajes de programación Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones, es utilizado para controlar el comportamiento físico y lógico de una máquina. [14]. Es decir; es el idioma mediante el cual podemos escribir códigos de una forma entendible para el humano y traducibles para la máquina. 1.1.5 ¿Qué es un objeto? Un objeto es un paquete que contiene datos y el código de forma de subrutinas que operan sobre los datos del propio objeto [16]. Eugenia Bahit, en su libro sintáctico gramatical de POO, explica de forma sencilla ¿qué es un objeto?, el cual es cualquier “cosa” que nos rodea, una mesa, una pared, un carro usted mismo es un objeto. Cuando se piensa en objetos todos los sustantivos son objetos. [17]. 1.2 CARACTERISTICAS DE LA POO Cuando vemos un objeto de la vida diaria notamos sus cualidades, es una descripción de la manera como se puede identificar un objeto. Por ejemplo, si observamos una silla notamos que el “objeto es” y luego describimos las características de la silla, la silla es marrón y marrón es un “color”, la silla es grande y grande es un “tamaño”, la silla es bonita y bonita es un aspecto, por lo tanto tenemos: La silla es de color marrón. La silla es de tamaño grande. La silla es de aspecto bonita. Además de esto, los objetos tienen la capacidad de realizar tareas, es decir, lo que ellos pueden hacer, sus comportamientos. Retomando el ejemplo de la silla nos debemos preguntar ¿Qué se puede hacer con la silla? Entonces la silla se puede desarmar, la silla se puede reclinar. 1.2.1 Abstracción Jojanes (1996) define la abstracción como “La propiedad de los objetos que consiste en tener en cuenta sólo los aspectos más importantes desde un punto de vista determinado y no tener en cuenta los restantes aspectos que no son significativos. Durante el proceso de abstracción es cuando se decide qué características y comportamientos debe tener el modelo. Un medio de reducir la complejidad es la abstracción. Las características y los procesos se reducen a las propiedades esenciales, dejando de lado los demás detalles no sustanciales. De este modo, las características complejas se hacen más manejables”. [10] La abstracción nos sirve para poder pasar un objeto del plano material al plano mental, es decir, que debemos tomar un objeto y aislarlo de los demás y analizarlo para determinar solamente sus características relevantes. ¿Con qué motivo se hace esto? Aunque todo un sistema funcione como uno podemos desarmarlo en partes más pequeñas, para poder identificarlo más fácil y destacar sus características básicas. 1.2.2 Clases y sus componentes. En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán. Un objeto creado a partir de una determinada clase se denomina una instancia de esa clase. [18] Los componentes de una clase son: Métodos (comportamientos): representan acciones propias que puede realizar el objeto. Cada método debe tener una y solo una responsabilidad. Atributos (Características o propiedades): Son los datos que están contenidos dentro de un objeto, los cuales pueden contener tipos primitivos tales como enteros, flotantes, caracteres, entre otros, también contener estructuras complejas como pilas, conjuntos, listas, pueden arrays o incluso de estructuras recursivas de alguno o todos de sus elementos. 1.2.3 Mensaje Un mensaje es una petición de un objeto a otro objeto al que le solicita ejecutar uno de sus métodos. Por convenio, el objeto que envía la petición se denomina emisor y el objeto que recibe la petición se denomina receptor. 1.2.4 Polimorfismo Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un objeto presente diferentes comportamientos en función del contexto en que se encuentre. Por ejemplo, un método puede presentar diferentes implementaciones en función de los argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones dependiendo del nivel de abstracción en que sea llamado. [18] 1.2.5 Herencia La herencia supone una clase base y una jerarquía de clases que contiene las clases derivadas de la clase base. Las clases derivadas pueden heredar el código y los datos de su clase base, añadiendo su propio código especial y datos a ellas, incluso cambiar aquellos elementos de la clase base que necesita sean diferente. Herencia Simple En esta jerarquía cada clase tiene como máximo una sola superclase. La herencia simple permite que una clase herede las propiedades de su superclase en una cadena jerárquica. Herencia Múltiple Una herencia múltiple o retícula consta de clases, cada una de las cuales puede tener una o más superclases inmediatas. Una herencia múltiple es aquella en la que cada clase puede heredar métodos y variables de cualquier número de superclases. 1.2.6 Encapsulación El encapsulamiento permite a los objetos elegir qué información es publicada y qué información es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus métodos como interfaces públicas y sus atributos como datos privados e inaccesibles desde otros objetos. Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar métodos de acceso. De esta manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados. Con el encapsulado de los datos se consigue que las personas que utilicen un objeto sólo tengan que comprender su interfaz, olvidándose de cómo está implementada y en definitiva reduciendo la complejidad de utilización.[22] 1.3 MODIFICADORES DE ACCESO Los modificadores de acceso permiten al diseñador de una clase determinar quién accede a los datos y métodos miembros de una clase los modificadores posibles son los siguientes: Públicas (public): Las clases declaradas como públicas son accesibles desde cualquier otra clase, es decir cualquier otra clase puede crear objetos de esta clase. Al igual que los métodos declarados públicos pueden usarse desde cualquier otra clase.. Privadas (private): Sólo se puede acceder al elemento desde métodos de la clase, o sólo puede invocarse el método desde otro método de la misma clase. Protegidos (protected): Este es una combinación de los accesos que proporcionan los modificadores public y private, protected proporciona acceso público para las clases derivadas y acceso privado (prohibido) para el resto de clases. Sin modificador: Se puede acceder al elemento desde cualquier clase del paquete donde se define la clase. Generalmente las clases son públicas, los atributos son privados y los métodos son públicos. 1.4 LOS METODOS CONSTRUCTORES, GET Y SET DE UNA CLASE El método constructor de una clase El constructor es un método especial de una clase. El objetivo fundamental del constructor es inicializar los atributos del objeto que creamos. Las características de un método constructor son las siguientes: El constructor es el primer método que se ejecuta cuando se crea un objeto. El constructor se llama automáticamente cuando instanciamos el objeto. Luego de que se ejecuta el constructor no puede ser llamado nuevamente. Un constructor no puede retornar dato. Un constructor puede recibir parámetros que se utilizan normalmente para inicializar atributos. [20] El constructor es un método opcional, no es obligación colocarlo y depende del diseño de la clase y la tarea que se quiera realizar. Método set El método set (establecer, colocar) es un método que se utiliza para asignarle valores a los atributos de la clase con el modificador de acceso privado. Método get El método get (obtener) es un método que se utiliza para obtener valores los atributos de la clase con el modificador de acceso privado. 1.5 DIAGRAMAS DE CLASES Un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.[21]. El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir, los que percibe el usuario y con los que espera tratar para completar su tarea en vez de objetos del sistema o de un modelo de programación. La clase se representa por un rectángulo con tres divisiones en las cuales en la parte superior se escribe el nombre de la clase, en el medio los atributos con su modificador de acceso y los métodos se escribes en la parte inferior El proceso de abstracción para crear un diagrama de clases es similar en cuanto al nombre y los atributos al mismo que se usa para crear un modelo entidad relación (visto en el modulo de bases de datos). 1.6 EL LENGUAJE JAVA Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad java es el primer lenguaje de programación orientado a objetos más usado y el segundo a nivel general según el índice tiobe [23]. Está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras. Una de las principales características por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, entre otros. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente. [24] 1.6.1 La comunidad de JAVA Una de las ventajas que presenta JAVA es su gran comunidad en español y otros idiomas, esto lo ha hecho un lenguaje de programación que se ha mantenido en la última década como un lenguaje de alta relevancia e importancia, con java puedes encontrar mucha información posteada en foros y paginas dedicadas al lenguaje, difícil no encontrar una respuesta buscándola en la web porque lo más probable es que a otra persona en cualquier lugar del mundo le ha sucedido lo mismo y lo ha solucionado, y esta información es totalmente gratis y accesible para cualquier persona, además de esto encuentras muchos proyectos , librerías, ejemplos y soluciones realizadas por otras personas las cuales solo necesitan importarlas a tu proyecto y no tienes que pensar de nuevo en cómo solucionarlo. 1.6.2 Netbeans como IDE de desarrollo Netbeans es un entorno de desarrollo que nos ayuda a crear nuestros sistemas de información y nos permite utilizar todo el concepto de POO a través del lenguaje java. Hay que tener en cuenta netbeans es un programa como cualquier otro que con los años lo van actualizando, La versión que utilizaremos para explicar los contenidos será la versión actual del momento que es la versión 7.3.1 Como instalar netbeans. Antes de instalar netbeans lo primero que debemos hacer es instalar la maquina virtual de java (JDK), podemos bajar los instaladores en https://netbeans.org/downloads/index.html o en cualquier pagina web utilizando los buscadores, además en este link en [Video 2] pueden encontrar un video tutorial para instalarlo. Entrada a netbeans Una vez instalado el programa lo abrimos con doble clic al icono que quedo en escritorio o en programas y aparecerá una interfaz como la que sigue. Ejemplo de creación de un proyecto en netbeans. Para la creación de clases en netbeans se hace clic en File->New Project Donde aparecerá una ventana donde escogeremos el tipo de aplicación para nuestras aplicaciones utilizaremos Java Application. Hacemos clic en Next y en la siguiente ventana podremos darle un nombre a nuestro nuevo proyecto, ejemplo MiPrimerProyecto, además podremos escoger donde guardarlo a través del botón Browse. Por último hacemos clic en Finish y aparecerá la siguiente ventana. 1.6.3 Variables y tipos de datos • byte: El tipo de dato byte es un entero de 8 bits complemento a dos. Su valor mínimo es -128 y el máximo 127 (inclusive). El tipo de datos byte se puede utilizar para ahorrar memoria en grandes arrays, donde el ahorro de memoria realmente importa. También se pueden utilizar en lugar de int donde sus límites ayudan a aclarar el código, el hecho de que el rango de una variable es limitado puede servir como una forma de documentación. • short: El tipo de dato short es un entero de 16 bits complemento a dos. Su valor mínimo es -32,768 y el máximo 32,767 (inclusive). Se aplican las mismas directrices que con byte: puede utilizar short para ahorrar memoria en grandes arrays, en situaciones en las que el ahorro realmente importa. • int: El tipo de dato int es un entero de 32 bits complemento a dos. Su valor mínimo es -2,147,483,648 y el máximo 2,147,483,647 (inclusive). Generalmente este tipo es la elección predeterminada para valores enteros a no ser que haya una razón (como las mencionadas anteriormente) para elegir otro. Este tipo de dato normalmente será lo suficiente grande para los números que su programa vaya a utilizar pero si necesita un rango más amplio, utilice long. • long: El tipo de dato long es un entero de 64 bits complemento a dos. Su valor mínimo es -9,223,372,036,854,775,808 y el máximo 9,223,372,036,854,775,807 (inclusive). Utilice este tipo de dato cuando necesite un rango de valores más amplio que el proporcionado por int. • Float: El tipo de dato float es un dato en coma flotante IEEE 754 de 32 bits y precisión simple. Su rango de valores está fuera del ámbito de este tema, pero se detalla en la sección 4.2.3 de la Especificación del lenguaje Java. Al igual que con byte y short, se recomienda usar un float (en vez de un double) si necesita ahorrar memoria en grandes array de números en coma flotante. Este tipo de dato nunca debería ser usado para valores precisos como, por ejemplo, divisas. Para esto debería usarla clase java.math.BigDecimal. Números y cadenas trata BigDecimal y otras clases útiles proporcionadas por la plataforma Java. • double: El tipo de dato double es un dato en coma flotante IEEE 754 de 64 bits y precisión doble. Su rango de valores está fuera del ámbito de este tema, pero se detalla en la sección 4.2.3 de la Especificación del lenguaje Java. Normalmente este tipo de dato es la elección predeterminada para valores decimales. Como ya se ha mencionado, este tipo de dato no se debería utilizar para valores precisos como, por ejemplo, divisas. • boolean: El tipo de dato boolean solamente tiene dos valores posibles: true (verdadero) y false (falso). Utilice este tipo de datos como conmutadores para la evaluación de condiciones verdadero/falso. Este tipo de dato representa un bit de información, pero su «tamaño» es algo que no está definido con precisión. • char: El tipo de dato char es un solo carácter Unicode de 16 bits.[ 25] 1.6.4 Estructura de control En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Estructura if (Si) condicional simple El “if” es la estructura de control más sencilla en la cual se tiene que cumplir con una condición para poder ejecutar el código y se construye de la siguiente forma. If(condición booleana){ Instrucciones } La condición booleana tiene que ser verdadera para que pueda ejecutar el código que está dentro. If (es de día){ Sale el sol } En este caso la condición se cumple cuando es de día entonces como es de día tiene que salir el sol En java sería algo como. Estructura if –else (Si - Sino) condicional doble Con este tipo de estructura se busca que en caso de no cumplirse la condición en el if continúe hasta el else de la siguiente forma. If(condición booleana){ Instrucciones }else{ Otras Instrucciones } Entonces lógicamente sería algo como. If(es de día){ Sale el sol }else{ Sale la luna } En este ejemplo quiere decir que la condición del if no se cumplió por lo tanto no ejecuta la instrucción que se encuentra en el, por lo tanto continua hacia el else. El ejemplo en java seria. Estructuras if... else anidadas condicional múltiple. Se obtiene anidando sentencias if... else. Permite construir estructuras de selección más complejas. If(la hora es menor que las 12 m y mayor que 6 am){ Es de mañana }else if(la hora es mayor que 12 y menor que 6){ Es de tarde }else{ Es de noche } Estructuras switch Este tipo de estructura evalúa una expresión y de acuerdo a eso lo remitirá a un caso u otro. Switch(expression){ Case 1: Instrucciones 1. break; Case 2: Instrucciones 2. break; Case 3: Instrucciones 3. break; default : Instrucciones default. break; } Estructuras de iteración. Este tipo de estructuras nos permiten ejecutar instrucciones un cierto número de veces de acuerdo a las condiciones de cada estructura. Estructura for. La estructura for permite ejecutar un bloque de instrucciones un número determinado de veces mientras se cumpla una condición. for(inicialización;condición;incremento){ Instrucciones… } La inicialización es el valor inicial en el cual comenzara el ciclo, el final del bucle lo indica la condición, y el incremente es el valor en la cual se aumentará la variable de inicialización cada vez que se repita el ciclo Estructura While. Esta estructura ejecutara un ciclo hasta que la condición del ciclo sea no se cumpla. while(expresión boleana){ instrucciones… } En este caso imprimirá del 0 hasta el 19. Estructura do-while. Esta estructura ejecuta primero la instrucción y luego evalúa la condición. En este caso imprimirá del 0 hasta el 29. 1.6.5 Concepto de librerías. Una librería es una colección o conjunto de subprogramas usados para desarrollar software. En general, las librerías no son ejecutables, pero sí pueden ser usadas por ejecutables que las necesitan para poder funcionar correctamente. Las librerías son muy utilizadas para extender las funcionalidades que queremos tener en el programa que estamos desarrollando, que de forma nativa no se pueden ser hacer. Por ejemplo si queremos conectarnos con una base de datos con la mera declaración de la clase no podemos hacerlo debemos incluir en nuestro proyecto y nuestra clase la instancia de la librería solicitada. La forma de incluir una librería en java es de la siguiente forma. Esta librería nos sirve para manipular las fechas. 1.6.6 Definición de una clase Las clases en java se declaran de la siguiente forma. Métodos Realicemos un ejemplo sencillo. Se necesita construir un programa que dado dos números los sume e imprima el resultado. Cree un proyecto descrito anteriormente en la sección Netbeans como IDE de desarrollo y llámelo Suma y codifique el resto. Al ejecutar el programa (clic derecho y escogemos la opción run file) deberá mostrar: “La suma de 2 y 5 es: 7” 1.6.7 Definición de un objeto de programación Los objetos en programación son instancias de las clases, es decir se crean a partir de una clase. Los objetos de las clases se crean a partir de la necesidad que existe de la reutilización, entre otras cosas, de algo que ya se creó para no volver a realizarlo y disminuir la redundancia de nuestro código. Si queremos crear un objeto en java tomando en cuenta la clase anterior de Suma debemos hacerlo de la siguiente forma. Donde “Suma” me indica la clase a la cual voy a crearle un objeto “s” me indica el nombre del objeto que puede ser nombrado de cualquier forma. La instanciación del objeto ocurre solo cuando se escribe el “new” en ese momento es que se instancia el objeto si no tengo el new y tenemos algo como Suma = null; en este caso creo el objeto de “Suma” pero no está instanciado es decir no puedo hacer uso de ningún método ni atributo de la clase Suma. Solo cuando se escribe el new es cuando podemos hacer uso de todos los métodos y atributos de la clase dependiendo del nivel de encapsulación, es decir los métodos y atributos públicos que contenga la clase y son clases heredadas de los protegidos. 1.6.8 Objeto del mundo real. Vs objeto de programación Ya indicamos que un objeto en el mundo real es cualquier cosa, en programación realizamos las clases a partir de las características de esos objetos del mundo real (abstracción), entonces los objetos en programación los creamos a partir de las clases. Los objetos entonces son variables de tipo clases. 1.6.9 Ejemplo del uso de otras clases: Paso1: agregue un archivo new file tipo clase de java( java class) y llamelo Operacion (sin tildes). Paso2: Programe la clase operación así: La clase operación contiene métodos públicos que reciben parámetros y retornan un valor de acuerdo al método que se quiera utilizar. Paso3: repita el paso 1 y cree otra clase llamada Realizaoperacion y codifiquela. La forma en la que se llaman a los métodos de la clase “Operación” es a través del objeto que creamos “op” seguido de punto (.) y el método que se quiere utilizar. Paso4: Repita el paso 1 y cree otra clase llamada EjecutarOperacion Paso5: Ejecute esta clase y observara los resultados. (Clic derecho sobre el código y escogemos la opción run file) RESUMEN DE LA UNIDAD En esta unidad se definen los conceptos de la Programación orientada a objetos, la importancia en la actualidad de esta disciplina de programación y sus principales características, así como las diferencias que existen con el tipo de programación que la precede y algunos de los motivos que llevaron a los ingenieros a replantearse un nuevo paradigma de programación que pudiera cumplir con los requerimientos que se estaban requiriendo en el momento. También en esta unidad se explica de una forma sencilla los conceptos de la POO, con ejemplos basados en el entorno para dar una idea más clara de los diferentes tipos de objetos. Se centrara en el lenguaje de programación JAVA y se da una breve explicación de la sintaxis, variables, métodos, clases y objetos en programación. AUTOEVALUACION Resuelva el siguiente cuestionario escogiendo solo la opción correcta 1. La clase puede tener máximo a- ventacontado x = new ventacontado ( ) a- 1 constructor b- ventacontado x = new ventacontado; b- 2 constructores c- ventacontado x = new ventacontado( ); c- 3 constructores d- ventacontado x = new ventacontado; d- No tiene límite 7. Un mensaje se hace a través de: 2. La clase debe tener mínimo a- una clase a- 1 constructor b- un objeto b- 2 constructores c- un atributo c- 3 constructores d- un método d- no es necesario un constructor 8. Los atributos representan: los a- Los comportamientos IVA, b- Las características valortotal, estado) si en la clase solo se puede c- Los constructores modificar la fecha y el cliente. Cuantos métodos d- Los modificadores 3. Existe siguientes una atributos clase venta (fecha, con cliente, set deben existir en la clase a. 0 b.1 c. 2 9. Un mensaje es necesario cuando: d. 3 e. 4 f. 5 a- Cuando en una clase se necesita de otra clase 4. Si la clase de venta permite usar todos b- Cuando en una clase se necesita de la atributos deben existir cuantos métodos get misma clase a. 0 b.1 c. 2 c- d. 3 e. 4 f. 5 clase d- Cuando en un objeto se necesita de otra Cuando una clase se necesita así 5. una clase en poo es: a- Un objeto de poo b- Abstracción de un objeto del mundo real 10. c- Un objeto del mundo real. crear una clase se debe tener en cuenta que: d- abstracción de un objeto poo a- una clase siempre es la misma b- la lógica del negocio c- las clases siempre deben ser públicas d- las posibles clases que vayas a utilizar 6. Como se define un objeto de la clase ventacontado en java: misma Cuando se hace una abstracción para 11. con una clase se puede construir d- tienen acceso total 16. Cual de las siguientes opciones es la a- 20 objetos b- 2000 objetos c- 30 objetos d- infinitos objetos causa principal para que la POO este tan 12. un objeto en POO es a- Un vector b- una variable c- algoritmo d- un método. difundida a nivel mundial. a- Mantenibilidad b- Privado c- Publico 13. los atributos deben ser a- privados b- una variable c- públicos d- pueden ser de varios tipos 14. los métodos deben ser generalmente a- privados b- públicos c- protegido d- pueden ser de un tipo 15. si todo los métodos de una clase padre d- Protegido 17. Cual de las siguientes opciones hace parte de una de las causas de la POO en la cual se permite hacer modificaciones de una forma sencilla. a- Herencia b- Clase c- Mantenibilidad d- Modificabilidad 18. son privados implica que todas las clases de hijas hace parte de la importancia de la POO. a- Herencia b- Mensaje a- no tienen acceso b- tienen acceso solo a los métodos constructores. c- señala cual de las siguientes opciones pueden usar los métodos de las clases “hermanas” c- Reusabilidad d- Todas las anteriores UNIDAD 2 DISEÑO DE INTERFACES GRAFICAS CON LOS OBJETOS GRAFICOS DE LA LIBRERÍA SWING Y VALIDACION DE INFORMACION. 2.1 Consideración en el diseño de una GUI: 2.2 Contenedores y componentes gráficos (Objetos gráficos) 2.2.1 Formularios: Clase jFrame 2.2.2 Cajas de textos: Clase jTextField. 2.2.3 Etiquetas: Clase jLabel. 2.2.4 Listas despegables: Clase jComboBox 2.2.5 Áreas de textos: Clase jTextArea. 2.2.6 Botones de opciones: Clase jRadioButton 2.2.7 Botones: Clase jButton 2.2.8 Métodos importantes en los componentes 2.2.9 Más componentes, ejemplo con Netbeans 2.2.10 El método initComponents 2.2.11 Eventos 2.3 Creación de clase de validación. 2.4 Validación de los objetos gráficos de un formulario utilizando la clase de validación creada en la sección anterior. PRESENTACIÓN En la presente unidad estudiaremos el tema de diseño de interfaz grafica de usuario (GUI), la cual consiste en la manera como el usuario final 3 va a interactuar con el sistema de información a través de los diferentes componentes gráficos que ya existen tales como campos de textos, listas desplegables, áreas de textos, casilla de verificación, entre otros. Todos estos objetos gráficos son clases ya existentes, las cuales tienen sus propios atributos y métodos que estudiaremos para poder utilizarlos en cualquier GUI, y podremos utilizar todas las ventajas POO. Generalmente las GUI sirven para comunicación con la base de datos (inserción, modificación, eliminación y búsquedas de información), estas bases de datos deben recibir información correcta, con lo cual es muy importante que después de estar creada la GUI se valide la información que el usuario final va a ingresar a ella, porque de esta información dependerán los informes solicitados. “Si la información no es correcta qué esperar de los informes?” PLANTEAMIENTO DEL PROBLEMA: ¿Cómo se puede diseñar y validar interfaces graficas de usuarios utilizando las clases la POO a la hora del desarrollo de los sistemas de información? COMPETENCIAS ESPECÍFICAS Diseñar una interfaz grafica de usuario utilizando las clases la POO. Validar la información digitada por el usuario final utilizando la POO. DINÁMICA PARA CONSTRUIR EL CONOCIMIENTOS ACTIVIDAD PREVIA: Trabajo independiente 3 Definición de Usuario final http://es.wikipedia.org/wiki/Usuario_final Antes de comenzar la lectura de la unidad responda de manera escrita lo que usted entiende por: o Interfaz grafica de usuario o Contenedores y componentes de una interfaz grafica de usuario. o Validación de interfaces de usuarios (generalmente lo encuentran como formulario) ACTIVIDAD PREVIA: Trabajo en grupo Reunidos en sus grupos confronte sus saberes previos con los de sus compañeros y tome de referencia la GUI de creación de cuenta en Hotmail4 e identifique y cuente los contendores, además muestre con imágenes las validaciones que en ella aparecen. Recomendaciones generales: Lea detenidamente la unidad II. Una vez leída la unidad, confronte sus saberes previos con lo aprendido en la unidad. Socializar en el grupo los diferentes temas tratados en la Unidad II. Desarrollar las actividades propuestas en cada apartado. 4 Creación de cuenta Hotmail https://signup.live.com/signup.aspx?wa=wsignin1.0&rpsnv=11&ct=1373578119&rver=6.1.6206.0&wp=MBI &wreply=http%3a%2f%2fmail.live.com%2fdefault.aspx&id=64855&cbcxt=mai&snsc=1&bk=1373578121&uif lavor=web&mkt=ES-ES&lc=3082&lic=1 2. DISEÑO DE INTERFACES GRAFICAS DE USUARIOS (GUI) CON LOS OBJETOS GRAFICOS DE LA LIBRERÍA SWING Y VALIDACION DE INFORMACION. Algunas definiciones de interfaz grafica de usuario: En [30] la definen como: “La interfaz gráfica de usuario, conocida también como GUI (del inglés graphical user interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador” En [31] la definen como: “La interfaz de usuario es la parte del programa que permite al usuario interaccionar con él“ En [32] la definen como: “es un mecanismo que posibilita la comunicación entre la persona (el usuario) y el computador (el sistema informático en general)” De las definiciones anteriores vemos que las GUI son las que nos ayuda a utilizar los computadores y por ende todo lo que ellos posee a nivel de hardware y software, imaginemos por un momento un computador con una GUI totalmente en blanco (sin nada), ¿que haríamos?, donde hiciéramos clic, donde escribiríamos. 2.1 Consideración en el diseño de una GUI: Basándonos en [32] y [33], al momento de crear una GUI debemos tener en cuenta muchos factores en cuenta entre los cuales destacamos: • Debe ser intuitiva • Definir los modos de interacción: Flexibles y adecuados • Dar opciones de interrumpir una acción, volver a ejecutar una acción • Pasos repetidos: macros • Mantener una interfaz consistente fuente, colores, distribución de los controles, terminología • Navegabilidad entre interfaces, volver atrás o regresar al principal • Facilidades de ayuda • Categorización de las funciones 2.2 Contenedores y componentes gráficos (Objetos gráficos) Los componentes de una GUI son elementos gráficos que permiten que interactuamos con los sistemas de información, los más comunes que encontramos son: botones, cajas de textos, listas desplegables, barras de menú, áreas de texto, entre otras, lenguajes de programación estos Gracias a la POO en la mayoría de componentes ya están programados y permiten ser manejados a través de sus métodos. Los contenedores de una GUI son como su nombre lo indica los que permiten contener, ordenar, agrupar los componentes. En JAVA y gracias al entorno de desarrollo NETBEANS podemos utilizar los componentes y los contenedores de una manera muy fácil, agradable y sin la necesidad de utilizar código. En java se utiliza dos librerías para la parte grafica, la AWT y la SWING, esta ultima remplazó de a la primera en cuanto a los componentes utilizado por lo cual utilizaremos la librería Swing. En la siguiente imagen podremos ver algunos de los componentes más usados Formularios: Clase jFrame Tomando como base una de las definiciones de la real academia “Impreso con espacios en blanco”, un formulario en programación es un área donde encontraremos un conjunto de componentes gráficos que aparecerán en blanco para que el usuario final los diligencie. Agregar un formulario usando netbeans. • Hacemos clic derecho la carpeta de las fuentes del proyecto escogemos new y luego JFrame Form así: • Aparecerá la siguiente pantalla donde escribiremos el nombre de la clase. Observar que en el campo Package diga el proyecto donde estamos trabajando en este caso miprimerproyecto. • Le damos clic finish y listo hemos creado nuestro primer formulario. 2.2.1 Cajas de textos: Clase jTextField. Una caja de texto es un espacio rectangular dentro del formulario en el cual se puede digitar información alfanumérica y se usa en los formularios para pedir información abierta que no es muy larga o requiera tabulaciones o cambio de línea. 2.2.2 Etiquetas: Clase jLabel. Una etiqueta es un texto fijo que aparecerá en el formulario 2.2.3 Listas despegables: Clase jComboBox Una Lista despegable es un espacio dentro del formulario en el cual se puede escoger información alfanumérica dentro de una lista de opciones y se usa en los formularios para pedir información cerrada, limitada mediana. 2.2.4 Áreas de textos: Clase jTextArea. Una área de texto es un espacio rectangular dentro del formulario en el cual se puede digitar información alfanumérica y se usa en los formularios para pedir información abierta que puede ser muy larga o requiera tabulaciones o cambio de línea. 2.2.5 Botones de opciones: Clase jRadioButton Un botón de opción es un espacio dentro del formulario en el cual se puede escoger información alfanumérica dentro de unas opciones y se usa en los formularios para pedir información cerrada, limitada pequeña. 2.2.6 Botones: Clase jButton Un botón es un espacio dentro del formulario en el cual podemos ordenar a que la GUI realice algún procedimiento, ejemplo volver a principal, enviar información a la base de datos entre otra. 2.2.7 Métodos importante en los componentes COMPONENTE METODO IMPORTANTES ALGUNAS ELEMENTO PROPIEDADES GRAFICO Cuadro de textos setText(String): (objetos lleva de información a la caja de texto jTextField) ejemplo jTextField1, jTextField1.setText(“hola”); en la jTextField2 caja de texto quedara escrito Cuadro de hola. contraseña (objetos getText(): trae la información Ensayar y analizar de jPasswordField) que tiene la caja de texto escrito qué pasa. jPasswordField1, jPasswordField2. Etiqueta (objetos de jLabel) jLabel1, jLabel2. Área en formato de String ejemplo La mayoría de las String propiedades se nombre=jTextField1.getText(); pueden modificar en la variable nombre queda también almacenado lo que tiene la caja métodos de texto escrito. de (objetos text por ejemplo se puede modificar con setText(valor texto en string). de jTextArea) jTextArea1, jTextArea2. Botones de opción isSelected(): devuelve falso o buttonGroup: permite (objetos de verdadero dependiendo si el escoger a qué grupo jRadioButton) jRadioButton esta seleccionado pertenece el botón jRadioButton1, ejemplo jRadioButton2 jRadioButton1.isSelected(); Para este objeto es de opción. Dentro de un grupo solo se permitirá necesario agregar un seleccionar un solo botón de opción. Este objeto no se ve en pantalla. Para que se pueda seleccionar una sola de varias opciones y a cada Ensayar y analizar objeto jRadioButton qué pasa. que vayan a pertenecer al mismo grupo se debe modificar la propiedad escogiendo al grupo al cual pertenece Casilla de isSelected(): devuelve falso o Muy parecidas al de verificación verdadero dependiendo si el los RadioButton (objetos de jCheckBox esta seleccionado jCheckBox) ejemplo jCheckBox1, jCheckBox2.isSelected(); jCheckBox2 Tabla jTable) jTable2 (objetos de setValueAt(valor a enviar tipo Una de las jTable1, Objetc, fila, columna); lleva propiedades más información a la tabla en la fila y importante es la columna escogida . propiedad model ejemplo puesto que aquí nos jTable1.setValueAt(“Wilson”, 0, permite 1); crear las lleva Wilson a la fila 0 columnas de la tabla. columna 1 getValueAt(fila, columna); trae información de la tabla en la fila y columna escogida. se debe saber el tipo de variable que tiene la columna para convertirla ejemplo: supongamos que la fila 1 sea string entonces quedaría así String nombre= jTable1.getValueAt(0,1).toString (); en variable nombre queda almacenado lo que tiene la tabla en la fila 0 columna 1. Botones (Objetos de jButton) para jButton1, programar un imagen en el botón jButton2. Se utilizan básicamente colocar para eventos (acciones). Lista de las (Objeto jComboBox) selecciona la información a la propiedades más se desplegable: setSelectedItem utiliza tenemos limitadas. (Object): Una cuando lista desplegable. Debe existir lo importante opciones que le enviamos como Object. Ejemplo jComboBox1. setSelectedItem(“Item 2”); en la lista desplegable quedara es propiedad la model puesto que aquí nos permite crear de opciones. lista seleccionado Item 2. getSelectedItem() trae la información que tiene la lista desplegable Object, toca en formato de convertirlo en String agregando toString(); Ejemplo: sea la variable String sexo = jComboBox1. setSelectedItem().toString(); en la variable sexo queda almacenado lo que tiene la lista desplegable escogido addItem(Object): para agregar un nuevo ítem desde código ejemplo: jComboBox1.addItem("xxx"); queda creado un nuevo Item en la lista xxx. 2.2.8 Mas componentes, ejemplo con Netbeans Luego de crear el formulario aparecen en la parte izquierda de su pantalla los componentes y los contenedores gráficos: En este caso utilizaremos los componentes (Swing Controls) para realizar nuestra primera GUI. Diseñando mi primera GUI • Bastara con hacer clic sostenido sobre el componente que se quiere y luego soltarlo en el formulario, ejemplo escogemos una etiqueta jLabel y lo arrastramos hasta el formulario. • Para escribir lo que se quiere en el jLabel, verificamos que este seleccionado (tiene los cuadritos alrededor) sino lo seleccionamos con un clic sobre él. • Buscamos la parte donde están las propiedades o atributos. • En la propiedad text escribimos lo que se quiere que aparezca en la etiqueta. • Y listo hemos agregado la etiqueta • En la propiedad font podremos escoger el tipo, estilo y tamaño de letra haciendo clic en • . Al igual que en la propiedad foreground podremos escoger el color haciendo clic en su respectivo . Para agregar los demás componentes se hace de la misma manera, repase la sección Métodos importante en los componentes, observe las propiedades y recomendaciones de los componentes gráficos. Tenga en cuenta que es obligatorio que cuando se agreguen los botones de opción a una GUI se debe agregar al menos un componente buttonGroup para agruparlas y permitir de que de todas las opciones se escoja una sola. Además cuando se agregue información a una lista desplegable a través de la propiedad model, en la primera opción coloque “Seleccione” (la letra S mayúscula) para efectos de validación más adelante, ejemplo: Creemos una GUI para la siguiente tabla de la base de datos. Niño Documento Nombre Apellido Sexo Grado El documento, el nombre y el apellido deben pedirse con cajas de textos (jTextField) porque tienen posibilidades infinitas. Ejemplo: preguntémonos cuantos nombres existen o cuantos documentos o cuantos apellido, la respuestas seria que existen muchísimos. El sexo se siguiere pedirlo con botones de opción puesto que son solo dos opciones El grado se sugiere pedirlo con lista desplegable Realicemos un análisis de los objetos que contiene nuestra primera GUI • 7 etiquetas - jLabel • 3 Cajas de Texto - jTextField • 4 botones – jButton • 2 botones de opción - jRadioButton • 1 lista desplegable – jComboBox • Grupo de botones - buttonGroup este no se visualiza, pero permite que en los botones de opción se seleccione solo uno Para ver funcionando nuestra primera GUI debemos programar en la clase del proyecto (la que se creó cuando creamos el proyecto por primera vez) una referencia un objeto de nuestra primera GUI así: Clase del proyecto Y procedemos hacer clic en para ver nuestra primer GUI funcionando. Hasta hemos creado satisfactoriamente nuestra primer GUI pero ahora mismo los botones no están funcionando puesto que no hemos programado ningún evento para que se ejecute. 2.2.9 El método initComponents El método initComponents es un método que crea “automáticamente” netbeans y en él se encuentra todo lo creado referente por la interfaz grafica. Para verlo nos vamos al código a través source Aparecerá el código de nuestro clase en este caso el del la clase MiPrimerFormulario Y Hacemos clic en el en botón + cerca a codificación de los componentes gráficos concepto y la importancia de POO. y aparecerá la donde podremos apreciar todo el Podemos apreciar la creación de los 7 objetos de la clase jLabel, 4 objetos de la clase jButton, los 3 objetos de la clase jTextField, los 2 objetos de jRadioButton, un objeto de jComboBox y el de buttonGroup. Además podemos ver todos los métodos que se utilizaron para crear la GUI. Todo es código generado gracias a nuestro IDE de desarrollo netbeans. 2.2.10 Eventos Los eventos son todas las acciones con las cuales el usuario interactúa con la GUI, dar clic sobre un botón, presionar las teclas del teclado, entre otros. Cada vez que se produce un evento, se crea un objeto. La clase padre de los eventos es "java.awt.event". Cada lenguaje de programación tiene su propio modelo de eventos, en Java se definen clases auxiliares llamadas escuchadores (listeners) que reciben eventos específicos 5. No es propósito de este modulo profundizar en este tema, se trabajará solo el evento clic del botón. Creando GUIS y programando los eventos de los botones. Pasos 1. Cree un proyecto llamado operaciones: 2. Cree 5 formulario - jFrame realice el procedimiento descrito anteriormente CLASE O ARCHIVO: Principal 5 http://victoralex-poo.blogspot.com/2011/04/eventos-excepciones-y-errores.html CLASE O ARCHIVO: Sumar CLASE O ARCHIVO: Restar CLASE O ARCHIVO: Multiplicar CLASE O ARCHIVO: División 3. Programe todos eventos de los botones de todas las interfaces Para programar los botones se debe hacer doble clic sobre ello. Botones de la interfaz principal: Los botones de la interfaz principal se programan de manera muy similar, puesto que lo que se quiere es que abra otra ventana (navegabilidad). • Doble clic sobre el botón y aparecerá la fuente(el código) • Justo hay debemos programar la navegabilidad hacia el formulario donde queremos ir en este caso queremos ir al formulario suma. En forma general para la navegabilidad se usa el siguiente código: NombredelaClase variable = new NombredelaClase(); //se crea el objeto variable.setVisible(true); //se hace visible el formulario this.dispose(); //se cierra el anterior. • El botón ir suma quedaría programado así: • Para programar el resto de botones de navegabilidad (ir a otro formulario) se repiten los paso anteriores. BOTON: Se da doble clic y el código para cerrar la aplicación es System.exit(0); Botones de la interfaz suma: Las cajas de texto se llaman jTextField1 y jTextField2 y donde se quiere la respuesta es jLabel5. BOTON Para hacer el botón sumar recordar los conceptos vistos en el modulo algoritmos. El algoritmo de sumar seria: Inicio Leer num1 Leer num2 res=num1 + num2; Escribir “la suma es ”,res fin Para hacer este algoritmo en java nuevamente usamos clases que ya existen para facilitarnos el trabajo (POO) pero la lógica se mantiene Se da doble clic en el botón sumar y el código es el siguiente: try //por si hay error en la lectura de los datos { int num1,num2,res=0; // definimos las variables num1=Integer.parseInt(jTextField1.getText()); // leer num1 num2=Integer.parseInt(jTextField2.getText()); // leer num2 res=num1+num2; jLabel5.setText(""+res); // operación //mostrar resultados } catch(Exception e) // captura el error { JOptionPane.showMessageDialog(null,"Ha ocurrido un error en el boton sumar"+e.getMessage()); //muestra el mensaje de error } También se debe agregar un paquete (librería) en la parte superior del código para manejar mensajes gráficos (JOptionPane) así; BOTON: Se da doble clic y el código es el siguiente BOTON: Se programa como una navegabilidad. 2.3 CREACIÓN DE CLASE DE VALIDACIÓN En este caso se trata de crear una clase que nos permita validar la información de una GUI y poderla utilizar en todos los proyecto de aquí en adelante. Existen muchas formas de validación de información en las GUI, en este modulo las clasificaremos y seguiremos un orden. Clasificación de validación • Validación de blancos o vacio: Es cuando el componente no ha recibido ninguna información del usuario. El error ocurre cuando en una caja de texto, simplemente no ha escrito nada, en un lista desplegables podemos dejar una primera opción que diga seleccione y si el usuario no escoge otra, sabremos ocurrirá el error y en un botón de opciones simplemente no ha escogido ninguna opción. • Validación numérica: Cuando en un campo se requiera una información numérica ya sea entera o sea real ejemplo un valor, un saldo, una cantidad entre otras. El error ocurre cuando en una caja de texto escriben algo diferente a número, en una lista desplegable y en los botones de opciones no hay necesidad de validar esta forma de validación. • Validación de rango Cuando en un campo se requiere validar limites numéricos ejemplo que el valor no sea negativo (>0). El error ocurre cuando en una caja de texto números superando los límites propuestos, en una lista desplegable y en los botones de opciones no hay necesidad de validar esta forma de validación. Clase validación 2.4 VALIDACION DE LOS OBJETOS GRÁFICOS DE UN FORMULARIO UTILIZANDO LA CLASE DE VALIDACIÓN CREADA EN LA SECCIÓN ANTERIOR Retomemos el ejemplo del registro de niños en la sección 2.3.9 Para la validación de cualquier GUI seguiremos los siguientes pasos • Crearemos un método que se llame Validación que reciba como parámetros los campos a validar. en este caso 4 campos de tipo String porque no se tiene en cuantos los botones de opción, para validarlos lo haremos directamente dependiendo del número de ellos que este en el grupo. La intención de este método de “Validación” es indicar si hay error retorna falso (false), si no hay error retornara verdadero (true), para cuando se quiera guardar la información, en otras palabras, si hay error no se guardará la información en la base de datos. • Creación del objeto validación. • Empezar a validar campo por campo utilizando la clase validación que ya creamos siguiendo el orden sugerido: primero validar blancos, luego numéricos y por último rango utilizándola estructura de control si (if) anidados. Para este ejemplo debemos validar 5 blancos, un numérico (documento) y vamos a suponer que el documento debe ser mayor a 999.999 y menor a 1.000.000.000 Para validación de campos vacios utilizamos el método ValidarCampoVacio de la clase validación: Ejemplo validemos el campo documento Para la validación de los demás campos toca utilizar IF anidados, es decir IF dentro de IF así: Y así sucesivamente. Para validar los botones de opciones se hará el siguiente IF: Dentro del método validación quedaría así; Cuando vayamos a comparar las listas desplegables (jComboBox) El cual lo incluiremos dentro del ultimo if. Para validación de campos numéricos utilizamos el método ValidarNumeroEntero para números entero y ValidarNumeroReal para números reales de la clase validación: Ejemplo validemos que el campo documento sean numérico entero. Este if se incluye dentro del último if. Para validación de rango utilizamos el método ValidarRango de la clase validación: Ejemplo: validemos que el documento sea mayor a 999.999 y menor a 1.000.000.000 Este if se incluye dentro del último if. Parte superior de Método Validación observe la estructura de los IF … Y listo hasta aquí hemos creado un método que nos valida toda la información de la GUI de registro de niños Probando el método de validación Solo necesitamos llamarlo desde el evento de un botón guardar y pasarle los parámetros necesarios que están en los componentes gráficos así: Y luego ejecutamos el proyecto. RESUMEN DE LA UNIDAD En esta unidad se explica las consideraciones generales al momento de diseñar una interfaz grafica de usuario (GUI), algunos de los diferentes contenedores y componentes gráficos, además se trabajan ejemplos prácticos con el IDE de desarrollo netbeans. De igual forma se muestra el ejemplo paso a paso de validación una GUI. AUTO EVALUACION 1. Tomando como referencia el ejercicio del observador del alumno desarrollado en el modulo de bases de datos, realice una interfaz grafica de usuario para cada una de las tablas del ejercicio. Estudiantes Familiar Acudiente Identificación Identificación Identificación Nombre IdentificacionEstudiante IdentificacionEstudiante Apellidos Nombre Nombre Fecha de nacimiento Apellidos Apellidos Dirección Dirección Dirección Teléfono Teléfono Teléfono e-mail e-mail E-mail Género Profesión Profesión Peso Nivel académico Nivel académico Rasgo familiar Talla RH Grado Grupo Jornada Situación vulnerabilidad Numero de hermanos Número de personas Estrato social, Discapacidad CodigoSeguridadSocial Información Académica IdentificacionEstudiante Colegio de procedencia Grados realizados Jornada Tipo de institución Motivo del retiro grados repetidos Fecha de retiro Aptitud Vocacional Seguridad Social Código Nombre tipo de seguridad Anotación DocenteDirectorGrupoI IdentificacionEstudiante dentificación IdentificaciónDocente Nombre Fecha Apellidos Observación realizada Dirección Seguimiento Teléfono Acción tomada e-mail Compromisos. Profesión Grado Grupo 2. Valide cada una de las interfaces realizadas en el punto anterior. 3. Cree una interfaz principal con botones para acceder (navegabilidad) a cada una de las GUI realizadas en el punto 1. UNIDAD 3 COMUNICACIÓN A BASE DE DATOS Y REPORTES 3.1 Creación de clases de comunicación JAVA con MYSQL 3.2Guardar información en la base de datos de una interfaz grafica validada usando la clase Conexión 3.3 Actualizar información en la base de datos de una interfaz grafica validada 3.4Eliminar información en la base de datos de una interfaz grafica validada 3.5Buscar información por llave primaria desde una base de datos de una interfaz grafica PRESENTACIÓN En esta unidad abordaremos el tema de comunicación de la GUI con la base de datos utilizando el IDE de desarrollo netbeans. La importancia de este tema radica en que a través de GUI podremos guardar, actualizar, eliminar y buscar información que tenemos almacenada. PLANTEAMIENTO DEL PROBLEMA ¿Cómo se puede establecer la comunicación entre la GUI y las bases de datos para el desarrollo de sistemas de información dentro de su institución que permita mejorar los procesos? COMPETENCIAS ESPECÍFICAS • Establecer comunicación entre la GUI y las bases de datos • Guardar, actualizar, eliminar y buscar información desde la base de datos. DINÁMICA PARA CONSTRUIR EL CONOCIMIENTOS ACTIVIDAD PREVIA: Trabajo independiente Contesta las siguientes preguntas 1. Define con tus propias palabras lo importancia que tienen las bases de datos 2. Porque es importante que haya una buena comunicación entre la GUI y la base de datos. 3. Porque es necesario imprimir información en una sistema de información. COMUNICACIÓN CON BASES DE DATOS 3.1 CREACIÓN DE CLASES DE COMUNICACIÓN JAVA COM MYSQL Al igual que en el tema de validación crearemos una clase que nos permita trabajar de una manera simple la comunicación con la base de datos en todos los proyectos que necesitemos crear. En esta clase crearemos los métodos que nos permitan establecer la comunicación, llevar información y buscar en la base de datos. Lo primero que hay que tener en cuenta para poderse comunicarnos es que necesitamos el nombre de la base de datos, el usuario y la contraseña, que utilizaremos en el método Conectar() para poder comunicarnos con la base de datos y obtener el permiso para poder guardar, actualizar, eliminar y buscar información. Lo segundo a tener en cuenta es que para guardar, actualizar y eliminar necesitaremos un solo método el Ejecutar() el cual simplemente ejecuta la sentencia SQL en la base de datos. Lo tercero a tener en cuenta es que para buscar información utilizaremos un solo método el Consulta() el cual ejecutara la consulta en la base de datos y traerá información de regreso con ayuda de la clase . Por último se debe crear un método el Desconectar() que cierre la comunicación para liberar recursos del sistema de información. La clase Conexión quedaría así Guardar información en la base de datos de una interfaz grafica validada usando la clase Conexión En este punto retomarnos el ejemplo de registro de niño el cual la GUI ya fue validada Para guardar información en la base de datos se siguen los siguientes pasos. • Se debe crear una base de datos en mysql para este ejemplo llamémosla colegio. • Dentro de esa base de datos se debe crear la tabla que se utilizo para diseña nuestra GUI Nino Documento Nombre Apellido Sexo Grado • El primer paso es agregar la biblioteca MYSQL –JDBC, la cual es la que nos ayuda en todo lo referente a la comunicación con la base de datos. Esta biblioteca solo se debe agregar una sola vez por cada proyecto. Para agregarla seguimos los siguientes pasos o Clic derecho sobre Libraries (biblioteca) y luego en Add Library (agregar biblioteca) así o Por último se escoge la biblioteca Driver MySQL JDBC y se da clic en agregar biblioteca así: o Verifique que dentro de biblioteca haya quedado ya insertada así: • Una vez creado la tabla procedemos en java a crear un método en la GUI que se llame guardar que recibe los parámetros necesarios en para guardar la información (documento, nombre, apellido, sexo y grado). • Creamos el objeto de conexión que necesitamos para la comunicación con la base de datos y llamamos al método que nos hace la comunicación con la base de datos. Le debemos pasar los parámetros de conexión, el nombre de la base de datos, el usuario y la contraseña. Además lo llamamos dentro de un IF para verificar que si se logro conectar correctamente. • Ahora creamos la instrucción SQL de guardar y la ejecutamos con el método ejecutar de la clase conexión, también dentro de if para verificar que efectivamente ejecuto la instrucción SQL. • Por último desconectamos la comunicación. • Y listo hemos creado el método que nos guardara la información en la base de datos. Solo faltaría llamarlo con los parámetros completos dentro del botón guardar previa validación. Además hacemos un IF donde preguntemos cual de los botones de opción esta elegido y asignamos una variable para el campo sexo así: • Ejecutemos el proyecto y guardemos información. 3.2 ACTUALIZAR INFORMACIÓN EN LA BASE DE DATOS DE UNA INTERFAZ GRAFICA VALIDADA Para actualizar información lo hacemos muy similar a guardar y seguimos los siguientes pasos • Creamos un método que se llame actualizar que reciba todos los parámetros. • Hacemos lo mismo que en guardar solo que instrucción SQL utilizamos la el UPDATE que es el que nos permite actualizar • Si observamos bien es casi idéntico al método guardar lo único que cambia es la instrucción SQL. • Por último se llama de una manera muy similar al método guardar pero en este caso se llama al método actualizar y se cambia el mensaje enviado a actualizado correctamente. • Ejecutemos el proyecto y probemos la funcionalidad. 3.3 ELIMINAR INFORMACIÓN EN LA BASE DE DATOS DE UNA INTERFAZ GRAFICA VALIDADA Para eliminar información lo hacemos muy similar a guardar y actualizar, seguimos los siguientes pasos • Creamos un método que se llame eliminar que reciba solo el parámetro de llave primaria o código de la tabla, en este caso documento • Hacemos el métodos que elimine • Si observamos bien es casi idéntico al método guardar lo único que cambia es la instrucción SQL y que recibe un solo parámetro. • Por último para llamar al método eliminar no es necesario validar todo, solamente se debe validar el documento, crearemos un método validar que solo valide el documento. (Siguiendo las mismas indicaciones de la sección validación de los objetos gráficos de un formulario utilizando la clase de validación) así: • Por último llamamos al método eliminar dentro del botón Eliminar así: • Ejecutemos el proyecto y probemos la funcionalidad. 3.4 BUSCAR INFORMACIÓN POR LLAVE PRIMARIA DESDE UNA BASE DE DATOS DE UNA INTERFAZ GRAFICA Para buscar información, utilizaremos la misma clase ya creada de conexión, los pasos son los siguientes: • Crear un método en la GUI que se llame buscar que solamente como parámetro reciba la llave primaria en este caso el campo documento. • Creamos el objeto de conexión que necesitamos para la comunicación con la base de datos y llamamos al método que nos hace la comunicación con la base de datos. Le debemos pasar los parámetros de conexión, el nombre de la base de datos, el usuario y la contraseña. Además lo llamamos dentro de un IF para verificar que si se logro conectar correctamente. • Agregamos de la librería java.sql.* en la parte superior en esta librería se encuentra la clase Resultset. • Ahora creamos un objeto de la clase Resultset, la cual es una clase que guarda la información que la base de datos le envía a java cuando se hace una búsqueda. • Hacemos la instrucción SQL de buscar y la ejecutamos con el método consulta de la clase conexión y lo que el método devuelve se lo asignamos al objeto resultado así: • Seguidamente debemos preguntar si en el objeto resultado quedo almacenada información. Si trajo información la enviaremos a la GUI en caso contrario enviaremos un mensaje diciendo que con ese documento no existe ningún niño. Para realizar este procedimiento encerrar todo con sentencia try catch por si sucede un error en el objeto resultado así : • Para enviar la información a la GUI tenemos que tener en cuenta al objeto. Por ejemplo el nombre está en el objeto jTextFiel2. Además tendremos en el campo sexo que realizar una pregunta para saber cual objeto de los botones de opciones hay que activar. El envió a la GUI quedaría así: • Por último desconectamos la comunicación. • Y listo hemos creado el método que nos buscara la información en la base de datos y mostrarla en la GUI. Solo faltaría llamarlo con el parámetro dentro del botón buscar previa validación del campo documento. • El método completo quedaría así: • Llamar al método dentro del evento del botón buscar. • Ejecutemos el proyecto y probemos. RESUMEN DE LA UNIDAD En esta unidad se trabaja con un ejemplo práctico la comunicación de la GUI con la base de datos, permitiendo guardar información nueva, actualizar y eliminar información existente todo a través de una clase llamada conexión que podrá ser utilizada en todos los proyectos que deseen desarrollar. También se explica la forma de recuperar y/o buscar información desde la base de datos y mostrarla en la GUI AUTO EVALUACION Tomando como referencia el ejercicio del observador del alumno, comunique todas las GUI del la autoevaluación de la unidad 2 con la base de datos. 1. Cree un método en cada interfaz que permita guardar la información solicitada. 2. Cree un método en cada interfaz que permita actualizar la información solicitada por código o llave primaria. 3. Cree un método en cada interfaz que permita eliminar la información solicitada por código o llave primaria 4. Cree un método en cada interfaz que permita buscar la información solicitada por código o llave primaria BIBLIOGRAFIAS • [1] Flores, J.J. (2011). Método para la solución de problemas utilizando la Programación Orientada a Objetos. Aspectos básicos. Recuperado de http://books.google.com.co/books?id=SwKICMJUS0C&pg=PA41&dq=que+es+el+lenguaje++java&hl=es&sa=X&ei=pU7f UeziGoX_4AOS9oDwDA&ved=0CGMQ6AEwCQ#v=onepage&q=que%20es %20el%20lenguaje%20%20java&f=false • [2] Oracle. (2011).Qué es la tecnología Java y por qué lo necesito? Recuperado de http://www.java.com/es/download/faq/whatis_java.xml • [3] BARBANCHO, J., BENJUMEA, J., ROMERO, O., ROMERO, M., ROPERO, J., SANCHEZ, G. y SIVIANES F. (2010). Servicios en red. España: Paraninfo • [4] NetBeans. (2012). Recuperado de http://www.guia- ubuntu.com/index.php/NetBeans. • [5] Introducción a iReport. (2005). Recuperado de http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ireport • [10] Joyanes, J,. Programación Orientada a Objetos. (1996). España: McGraw-Hill. • [11] Ventajas de la programación orientada a objetos. (2010). Recuperado de http://www.ciberaula.com/articulo/ventajas_poo/ • [12] Martínez, F., Martin, G. (2003). Introducción a la programación estructurada en C. España: Maite Simón • [13] Programación orientada a objetos versus programación estructurada: C++ y algoritmos.(2002). Recuperado de http://www.mcgraw- hill.es/bcv/guide/capitulo/8448146433.pdf • [14] Lenguajes de programación. (2008). Recuperado de http://guimi.net/descargas/Monograficos/G-Lenguajes_de_programacion.pdf • [15] Rodríguez, R., Sosa, E., Prieto, A. (2004). Programación orientada a objetos. Recuperado de http://libreriaalvaro.com/libropoo.pdf • [16] Martínez, R., Quiroga, E. Estructuras de datos/ Data Structures: Referencia Practica Con Orientación a Objeto. (2002). España: Thomson learning • [17] Bahit, E.(2013). Teoría sintáctico-gramatical de objetos. Recuperado de http://www.bubok.es/libros/219288/Teoria-sintacticogramatical-de-objetos • [18] Clase (informática). (2013). Recuperado de https://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica). • [19] INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS. (1996). Recuperado de http://zarza.usal.es/~fgarcia/doc/tuto2/I_1.htm • [20] Método constructor de una clase (__construct). (2000). Recuperado de http://www.phpya.com.ar/poo/temarios/descripcion.php?cod=39&punto=5&in icio=0 • [21] Diagrama de clases. (2013). Recuperado de http://es.wikipedia.org/wiki/Diagrama_de_clases • [22] INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS. (1996). Recuperado de http://zarza.usal.es/~fgarcia/doc/tuto2/I_1.htm. • [23] TIOBE Programming Community Index for July 2013. (2013). Recuperado de http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. • [24] Descripción y características de este potente y moderno lenguaje de programación. (2013). Recuperado de http://www.desarrolloweb.com/articulos/497.php • [25] Tipos de datos primitivos. (2008). Recuperado de http://www.codexion.com/tutorialesjava/java/nutsandbolts/datatypes.html. • [30] Interfaz gráfica de usuario. (2013). Recuperado de http://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario • [31] Cervigon, C. Interfaces Graficas de usuarios. (2010). Recuperado de http://www.fdi.ucm.es/profesor/jpavon/poo/tema6resumido.pdf. • [32] Vázquez, p., Marco, J., Martin, A., Molinero, X. (2006). Programación en c++ para ingenieros. España: Paraninfo • [33] DISEÑO DEL DIALOGO GUI (INTERFAZ GRÁFICA DE USUARIO). (2003). .Recuperado de http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060030/lecciones/C apitulo%205/gui.htm Fotos [Imagen de POO unidad 1]. Recuperado de http://elvex.ugr.es/decsai/builder/intro/5.html [Imagen de interfaces graficas de usuario]. Recuperado de http://www.os.catacamas.net/Sistemas%20operativo%20de%20tiempo%20real/Int erfaz%20grafica%20de%20usuario.html Videos [video 1] Centeno, D., Chávez, K. (5 de junio de 2012). Creación de interfaz grafica de usuario en Netbeans. [Archivo de video]. Recuperado de http://www.youtube.com/watch?v=EbNZDa-j-64 [video 2] Ramírez, M. (6 de noviembre de 2011). Instalar jdk y Netbeans 7.0. [Archivo de video]. http://www.youtube.com/watch?v=KQk0OUZ1rGY Recuperado de