You are on page 1of 94

Vicerrectora Acadmica Proyecto P.A.V.

Plataforma de Aprendizaje Virtual

MDULO VIRTUAL LENGUAJES III: JAVA

FABIO ALBERTO VARGAS

VICERRECTORA ACADMICA PROYECTO P.A.V. PLATAFORMA DE APRENDIZAJE VIRTUAL

TECNOLGICO DE ANTIOQUIA INSTITUCIN UNIVERSITARIA MEDELLN 2011

Unidad 1

Introduccin a Java
El Lenguaje de programacin Java es una herramienta para el desarrollo de software que permite la incorporacin de un conjunto de estructuras que facilitan la construccin de software, el Java posee una mayor facilidad de trabajo ya que cuenta con un sinnmero de editores libres que se emplean para el desarrollo, en esta unidad se describe en forma general una introduccin al Java y se da un inicio a las estructuras de programacin con el proceso de entrada y salida de datos por consola empleando el editor JCreator

1. Generalidades del Lenguaje Java


1.1. Generalidades del Lenguaje Java
1. Que es el Java: es un Lenguaje de Programacin Orientado a Objetos, basado en el Lenguaje de Programacin C++ que permite la creacin de distintas aplicaciones a pequea y gran escala en diferentes ambientes: Aplicaciones tipo consola: son aquellas que se ejecutan en una ventana de MSDOS, es decir en la lnea de comandos utilizando formato de entrada y salida en forma de texto. Aplicaciones tipo Windows: son aquellas basadas en el manejo de formularios y mensajes utiliza un entorno de ejecucin en forma grfica.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

Aplicaciones para Internet (Appplets, JSP): Son aquellas generadas como herramienta para el desarrollo de servicios en Internet, que utilizan herramientas como JSP y Servlets para generar sitios Web ya sean estticos o dinmicos.

Aplicaciones para dispositivos mviles: son aquellas que se ejecutan en un dispositivo mvil, como lo pueden ser celulares, PDA entre otros y que utilizan la tecnologa J2ME de Java (Java 2 micro Edition).

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

1.2. Estructura del Lenguaje


El java es un lenguaje de programacin que est dividido en paquetes, dentro de los paquetes estn las clases, de las clases se generan los objetos y Los objetos a su vez tienen propiedades y mtodos. Todo programa en Java tiene que ir en una clase, la cual se debe definir previamente en el momento de la creacin del archivo.Que es un Paquete: una agrupacin jerrquica de objetos, que permiten su fcil localizacin, adems de evitar confusin en uso y propsito de un objeto en particular, se deben ver los paquetes como carpetas en las cuales se almacenan clases, y para acceder a una clase en particular se debe especificar su localizacin. Algunos paquetes de Java son los siguientes: import import import import javax.swing java.awt java.io java.net

Que es una Clase: Es una estructura genrica no tangible que rene un conjunto de objetos que comparten las mismas caractersticas y funcionalidad y que puede ser utilizadas por los usuarios en la definicin de las estructuras de datos y propiedades asociadas al programa que se desea desarrollar. En Java las clases se definen de la siguiente forma:class

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

nombreclase { //Atributos //Metodos } Que es Un Objeto: Es una Instancia de una Clase, la cual ya tiene definidas sus atributos y mtodos. En Java un objeto se define de la siguiente manera: Clase objnum = new Clase(); Que es Herencia: la herencia es muy til, ya que permite que un objeto tome cdigo de otro objeto y lo haga parte del objeto, y que objetos que a primera vista sean muy diferentes compartan un comportamiento en comn sin necesidad de repetir cdigo. En Java la herencia se representa de la siguiente forma: public class extends ClaseTodos estos conceptos fundamentales se exploraran en sesiones posteriores en la medida en que se profundice en el lenguaje. Hay que tener en cuenta que los archivos de Java tendr extensin .java, mientras que el compilado tendr extensin .class.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

2. INGRESO AL PROGRAMA
2.1. Ingreso al Programa
1. Requerimientos necesarios: Para poder programar en java se requieren dos elementos fundamentales que garanticen el buen uso del lenguaje y que ayuden al programador en su proceso. Estos dos elementos son: el editor y el compilador. Para Java existen un conjunto muy variado de editores que varan desde su entorno, hasta el sistema operativo sobre el que pueden correr. Los editores ms reconocidos son: JCreator (Windows, Linux) Netbeans (Windows, Linux) Eclipse (Windows, Linux) Tengamos presente que un editor es una herramienta que permite facilitar la codificacin del lenguaje y su procesos de compilacin y ejecucin de una manera fcil y sencilla. El otro elemento importante e infaltante es el Compilador que es el encargado de convertir el cdigo fuente en un cdigo ejecutable y entendible para la maquina. Los Compiladores de Java pertenecen a la familia conocida como JdK. JDK 1.4.2 JDK1.5.0 JDK 1.6.0 Para la prctica de los ejercicios y del lenguaje utilizaremos el editor JCreator. El editor y el compilador los puedes bajar en las siguientes direcciones: http://www.jcreator.com/ (pagina consultada el 22 de agosto de 2008) http://java.sun.com/javase/downloads/ (pagina consultada el 22 de agosto de 2008) Instalamos y a programar!

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

2.2. Editor de Java

2.2.1. Utilizacin del Editor


Para ingresar al editor necesitamos ubicar en nuestro equipo el programa JCreator, que vara dependiendo de la versin que se utiliza.

Luego debemos seleccionar la opcin de Archivo (File), Nuevo (new), Archivo (File)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

Seleccionar el tipo de archivo que se desea construir en este caso un archivo de Java (Java File).

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

Escribir el nombre del programa, que por ende se convierte en el nombre de la clase.

Y por ultimo comenzar la codificacin con todas las instrucciones y estructuras que se vern a continuacin.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

3. SINTAXIS GENERAL DEL LENGUAJE


3.1. Comentarios
El Java ofrece la posibilidad de tres tipos de comentarios para ser utilizados en la organizacin general del cdigo que se est desarrollando:

3.1.1. Comentarios para varias lneas:


/* Este es un comentario de varias lneas de cdigo */ Con este tipo de comentarios se pueden desactivar tambin lneas de cdigo que no se deseen que sean reconocidas por el compilador y por ende ejecutar.

3.1.2. Cometario de una sola lnea


Para este tipo de comentarios se emplea los dos // ,Slash. Los comentarios inicial cuando se colocan los dos slash y va hasta el final de la lnea. // Este es un comentario para una sola lnea

3.1.3. Comentario para documentacin


Es un tipo de comentario es muy similar al de varias lneas pero teniendo en cuenta que la informacin comentado ser usado por la herramienta javadoc. Se diferencia de los comentarios de varias lneas ya que se agrega un asterisco al inicio del comentario. /** Este tipo de comentarios los utiliza la herramienta javadoc */

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

10

3.2. Identificadores
Son los nombres utilizados para identificar el conjunto de variables, mtodos, clases, objetos utilizados para programar las aplicaciones JAVA, estos identificadores pueden comenzar con una letra, el signo de _ (subrayado) o el signo de $ y de all en adelante combinar letras, nmeros. Los identificadores no se limitan a los caracteres ASCII, si el editor de texto lo soporta, se pueden escribir identificadores utilizando caracteres Unicode. Es muy importante tener en cuenta que no hay limite al nmero de caracteres, pero si es importante manejar un cantidad moderada y acorde a lo que se est nombrando. Se diferencia mayscula y minscula. Ejemplo de Identificadores validos: nombre promedio $valor suma_notas cont_pares _total calcular guardar telefono2 Hay que tener en cuenta que Java maneja un conjunto de palabras reservadas para funciones propias del lenguaje y que no pueden ser utilizadas como identificadores. abstract boolean break byte case catch char class const Continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super Switch Synchronized this throw throws transient try void volatile while true false

3.3. LITERALES (Constantes)


Se define como un valor que no pueda ser modificado durante la ejecucin del programa y que se define directamente en el cdigo de la aplicacin, los literales pueden ser nmeros (enteros, flotantes, dobles), caracteres y cadenas de caracteres. Se pueden definir literales numricas a partir de cualquier tipo de dato que maneja Java para valores numricos.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

11

o o

123 // literal tipo int 123.454 // literal tipo double true y false.

Se definen literales lgicos con las palabras claves Se definen literales tipo carcter incluyndolas en comillas sencillas. o o p g

Se definen literales tipo cadena de caracteres se representan por una secuencia de caracteres entre comillas. o o juan 257575

3.4. OPERADORES
Son el conjunto de smbolos que permiten llevar a cabo un conjunto de operaciones y manejo de expresiones en el lenguaje Java, a continuacin de describen los diferentes tipos de operadores:

Operador + * / % = += -= *= /= %=

Significado Ejemplo Operadores aritmticos Suma a+b Resta a-b Multiplicacin a*b Divisin a/b Mdulo a%b Operadores de asignacin Asignacin a=b Suma y asignacin a += b (a=a + b) Resta y asignacin a -= b (a=a - b) Multiplicacin y asignacin a *= b (a=a * b) Divisin y asignacin a / b (a=a / b) Mdulo y asignacin a % b (a=a % b)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

12

== != < > <= >= ++ -(tipo)expr + . ()

Operadores relacionales Igualdad a == b Distinto a != b Menor que a<b Mayor que a>b Menor o igual que a <= b Mayor o igual que a >= b Operadores especiales Incremento a++ (postincremento) ++a (preincremento) Decremento a-(postdecremento) --a (predecremento) Cast a = (int) b Concatenacin de cadenas a = "cad1" + "cad2" Acceso a variables y mtodos a = obj.var1 Agrupacin de expresiones a = (a + b) * c

3.5. VARIABLES Y TIPOS DE DATOS


Las variables son espacios de memoria que se reservan para almacenar datos de los cuales cada uno posee un nombre, un tipo de dato y un valor asignado. Cuando se define unas variables se requiere obligatoriamente asignar un tipo de dato que depende del uso de la variable y la informacin que se va a almacenar en ella. Sintaxis: tipo_dato nombrevariable = valorasignado; Ejemplo: int suma=0; Java maneja los siguientes tipos de datos.

Tipo byte short int long float double Entero byte Entero corto Entero Entero largo

Descripcin Nmeros enteros

Tamao/Formato 8-bit 2's 16-bit 2's 32-bit 2's 64-bit 2's

Nmeros reales Punto flotante Punto flotante de doble precisin 32-bit IEEE 754 64-bit IEEE 754

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

13

Otros tipos char boolean Un solo carcter Un valor booleano 16-bit caracteres Unicode true o false

En java se manejan bsicamente tres tipos de variables que dependen de su mbito de utilizacin: Variables de instancia. Se utilizan para definir los atributos de un objeto. Variables de clase. Son similares a las variables de instancia, con la excepcin de que sus valores son los mismos para todas las instancias de la clase. Variables locales. Se declaran y se utilizan dentro de las definiciones de los mtodos.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

14

4. Entrada y Salida de Datos por Consola

4.1. Programa inicial


Al iniciar la programacin en Java es importante reconocer el proceso de entrada y salida de datos por consola que nos permite poner en prctica el conjunto de estructuras de programacin que se desarrollaran ms adelante, para entender este proceso presentamos el siguiente ejercicio que permite digitar dos nmeros enteros, sumarlos e imprimir el resultado en la consola:

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

15

Es necesario para el trabajo de entrada y salida de datos por consola la referencia al paquete import java.io.*; Por favor digitar el cdigo anterior, compilarlo y ejecutarlo. Comentarios al programa anterior: 1. El flujo u objeto InputStreamReader es lo que permite leer datos. 2. El System.in u objeto InputStream es el argumento del constructor de InputStreamReader y modela el origen de los datos que se leen, es decir, el teclado. 3. El filtro u objeto BufferedReader permite, mediante la utilizacin del mtodo String readLine(), leer de forma ptima del flujo.

4.2. Estructuras bsicas de Programacin:

4.2.1. Condicional:
if ( condicin) if (A > B) proceso; B=10; if(condicin) if (A > B) proceso1; A=10; else else proceso2; A=5; if (condicin) { proceso1; proceso2; } else { proceso3; proceso4; } //Este es el final del condicional.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

16

Nota: Se destaca que cuando un condicional tienen varios procesos debe utilizarse llaves para referenciar toda la estructura. Ejemplo de utilizacin del condicional con entrada y salida por consola que imprime el mayor de dos nmeros y en caso de ser iguales imprime un mensaje

4.2.2. ESTRUCTURAS CICLICAS


FOR for (valor_inicial; condicion_final; incremento) { proceso1; proceso2; } Ej: for (I=1; I<=10; I++) { Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

17

proceso1; proceso2; } En Java se puede definir la variable en el mismo ciclo. Ejemplo: for (int I=1; I<=10; I++) { proceso1; proceso2; } Ejemplo de Utilizacin de Ciclo for, Programa que genera los nmeros del 1 al 10 en pantalla utilizando entrada y salida de datos por Consola.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

18

WHILE valor_inicial; while (condicion_final) { proceso1; proceso2; incremento/actualizar variable; } Ej: I=1; while ( I<=10 ) { proceso1; proceso2; I++; } Ejemplo de Utilizacin de Ciclo while , Programa que genera los nmeros del 1 al 10 en pantalla utilizando entrada y salida de datos por Consola.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

19

DO WHILE valor_inicial; do { proceso1; proceso2; incremento/actualizar variable; }while(condicin); Ej: I=1; do { proceso1; proceso2; I++; }while ( I<=10 ); Ejemplo de Utilizacin de Ciclo do while , Programa que genera los nmeros del 1 al 10 en pantalla utilizando entrada y salida de datos por Consola.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

20

SWITCH switch ( opcin ) { case 1: proceso1; break; case 2: proceso2; break; default: proceso; } Ejemplo de Utilizacin de la estructura switch, Programa que permite seleccionar una opcin e imprimir el mensaje correspondiente.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

21

Unidad 2

Estructura de Datos en Java


El manejo y utilizacin de estructuras de datos es fundamental en los procesos de desarrollo de software, el Lenguaje de programacin Java proporciona un conjunto de estructuras de almacenamiento temporal y tambin de almacenamiento permanente que facilitan los procesos de consulta de informacin de una forma fcil, rpida y que no requiere la utilizacin de grandes recursos de programacin ni tecnolgicos. En esta unidad se describen las principales y ms utilizadas estructuras de datos tanto de almacenamiento temporal (Arreglos), como de almacenamiento permanente (Archivos).

1. Arreglos
1.1. Arreglos Unidimensionales (Vectores) 1.1.1. Generalidades unidimensionales. de los arreglos

Arreglo Unidimensionales (Vectores): son estructuras de datos que permiten almacenar informacin en forma temporal, es decir solamente mientras el programa se est ejecutando, los vectores poseen las siguientes caractersticas en lo referente a su forma de almacenamiento y manejo de la informacin: Almacenan los elementos en posiciones contiguas de memoria. Poseen un nombre que se encarga de referenciar toda la estructura durante la codificacin del programa Para hacer referencia a los elementos almacenados en el vector es necesario utilizar un ndice que especifica el lugar que ocupa cada elemento dentro de la estructura de datos. Poseen un tamao asignado que determina la capacidad de almacenamiento de la estructura. Permitir almacenar informacin solo de un mismo tipo de datos. (int, double, single).

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

23

Representacin grfica de un Vector

Esquema realizado por: Equipo Tcnico P.A.V Septiembre del 2008

Elemento: Valor que se almacena en la estructura de datos y que debe corresponder al tipo de dato con el cual fue definido el vector. (int, double, float, single etc..). ndice: Valor de tipo entero que indica la posicin en la cual se almacena el valor dentro de vector. Nombre: es el identificador del vector durante todo el proceso de codificacin del programa. Los nombres de los vectores siguen las mismas normas descritas en la unidad anterior en el manejo de identificadores.

1.2. Arreglos Unidimensionales en Java (Vectores)


Declaracin de Vectores Java: Para poder utilizar un arreglo unidimensional (vector) en Java se debe establecer las siguientes operaciones:

1.2.1. Declaracin
Sintaxis tipodato nombrevector[ ];

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

24

Ejemplo int numeros [ ];

1.2.2. Dimensionar (Definir almacenamiento)


Sintaxis nombrevector = new tipodato[tamao]; Ejemplo numeros = new int[5];

la

capacidad

de

1.2.3. Operaciones bsicas con vectores en Java


Llenado de un Vector: Es el proceso en el cual se ingresan los valores a la estructura para ser utilizados en procesos posteriores, los elementos que se almacenen en el vector deben corresponder al tipo de dato de la estructura y no deben sobrepasar la dimensin definida. Adems los elementos en Java se almacenan desde la posicin 0. El llenado de un vector se puede realizar de dos formas bsicamente: Recorriendo el Vector: se utiliza un ciclo que recorra el vector y en cada posicin del vector se almacena un valor determinado. Directamente: se ingresan directamente los valores al vector en el momento de su declaracin. Imprimir un Vector: es el proceso por el cual se imprimen los valores almacenados en el vector. Para ello se recorren cada una de las posiciones del vector y se imprimen los elementos almacenados en cada una de ellas. El siguiente programa llena e imprime un vector dependiendo del tamao digitado por el usuario. Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

25

Nota: Los vectores se llena con un ciclo for y se imprimen tambin con la utilizacin de un ciclo for. Los vectores se pueden definir de cualquier tipo de dato (int, float, double, String). Los arreglos unidimensionales tambin se pueden llenar directamente en el proceso de declaracin como se muestra en el siguiente ejercicio. Por favor digitar, compilar y ejecutar el programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

26

Nota: La cantidad de datos que se expresan en la declaracin determinan el tamao del vector. El siguiente programa llena un vector e imprime la cantidad de ceros, la cantidad de nmeros positivos y la cantidad de nmeros negativos almacenados en el vector. Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

27

Nota: Las Estructuras de Programacin tipo Ciclo (for, while, y do while) permiten el recorrido de un vector, pero la estructura ms recomendada es el ciclo for.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

28

2. Arreglos Bidimensionales (Matrices)


2.1. Generalidades de los arreglos Bidimensionales.
Arreglo Bidimensionales (Matrices): son estructuras de datos que permiten almacenar informacin en forma temporal, es decir solamente mientras el programa se est ejecutando, las matrices poseen las siguientes caractersticas en lo referente a su forma de almacenamiento y manejo de la informacin: Almacenan los elementos en posiciones contiguas de memoria. Poseen un nombre que se encarga de referenciar toda la estructura durante la codificacin del programa. Para hacer referencia a los elementos almacenados en la matriz es necesario utilizar dos ndices el primero que se encarga de referenciar las filas de la matriz y el segundo que se encarga de referenciar las columnas, la combinacin de ambos ndices especifican el lugar que ocupa cada elemento dentro de la estructura de datos. Poseen un tamao asignado que determina la capacidad de almacenamiento de la estructura, se debe indicar la cantidad de filas y la cantidad de columnas, la multiplicacin de ambos indican la capacidad total de almacenamiento. Permitir almacenar informacin solo de un mismo tipo de datos. (int, double, single)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

29

Esquema realizado por: Equipo Tcnico P.A.V Septiembre del 2008

Elemento: Valor que se almacena en la estructura de datos y que debe corresponder al tipo de dato con el cual fue declarada la matriz. ndice fila: Valor de tipo entero que indica la fila en la cual se almacena el valor dentro de la matriz. ndice columna: Valor de tipo entero que indica la columna en la cual se almacena el valor dentro de la matriz. Nombre: es el identificador de la matriz durante todo el proceso de codificacin del programa. Los nombres de las matrices siguen las mismas normas descritas en la unidad anterior en el manejo de identificadores.

2.2. Arreglos Bidimensionales en Java (Matrices)


Declaracin de Matrices Java: Para poder utilizar un arreglo bidimensional (matriz) en Java se debe establecer las siguientes operaciones:

2.2.1. Declaracin
Sintaxis tipodato nombrematriz[ ][ ];

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

30

Ejemplo double salarios [ ][ ];

2.2.2. Dimensionar (Definir almacenamiento)

la

capacidad

de

Sintaxis nombrematriz = new tipodato[cantidad filas] [cantidad columnas]; Ejemplo salarios = new double[5][4];

2.3. Operaciones bsicas matrices en Java

Llenado de una Matriz: Es el proceso en el cual se ingresan los valores a la estructura para ser utilizados en procesos posteriores, los elementos que se almacenen en la matriz deben corresponder al tipo de dato de la estructura y no deben sobrepasar la dimensin definida. La dimensin depende de la cantidad de filas y la cantidad de columnas establecidas. El llenado de una matriz se puede realizar de dos formas bsicamente: Recorriendo la matriz: se utilizan dos ciclos uno que se encarga de recorrer las filas y otro ciclo que se encarga del recorrido de las columnas como ciclos anidados, la combinacin de las filas y las columnas determinar la posicin donde se almacena el valor. Directamente: se ingresan directamente los valores a la matriz en el momento de su declaracin. Imprimir una Matriz: es el proceso por el cual se imprimen los valores almacenados en la Matriz. Para ello se recorren cada una de las posiciones de la Matriz y se imprimen los elementos almacenados en cada una de ellas. Se utilizan dos ciclos anidados uno que se encarga del recorrido de las filas y otro del recorrido de las columnas. El siguiente programa llena e imprime una matriz de 3 filas por 3 columnas. Por favor digitar, compilar y ejecutar el programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

31

Nota: Para hacer el llenado y la impresin de una matriz se deben usar dos variables para los ndices y se utilizan 2 ciclos uno para las filas y otro para las columnas; a estos ciclos se les llama ciclos anidados. El siguiente programa crea una matriz de 2 por 2 con nombres e imprime la matriz resultante. Por favor digitar, compilar y ejecutar el programa:

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

32

Nota: El programa anterior muestra la segunda forma de llenar una matriz directamente desde la declaracin. Los datos que se ingresan determinan la dimensin de la matriz, tanto la cantidad de filas y la cantidad de columnas. El siguiente programa llena un matriz e imprime la diagonal principal de dicha matriz. Por favor digitar, compilar y ejecutar el programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

33

Nota: Una Matriz cuadrada es aquellas donde la cantidad de filas es igual a la cantidad de comunas.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

34

3. Archivos
3.1. Generalidades de los archivos
QUE ES UN ARCHIVO: Los archivos son un conjunto de informacin de tipos de datos relacionados que se almacena en forma permanente en alguna parte del sistema de computo, para ser utilizado y referenciado en operaciones posteriores. Los archivos poseen las siguientes caractersticas almacenamiento y manejo de la informacin: con respecto a su forma de

1. Almacenamiento de informacin en forma permanente. 2. No se requiere tener un tamao preestablecido de almacenamiento en los archivos, su capacidad depende ms de las especificaciones del equipo de cmputo. esto significa que se pueden hacer archivos de datos ms grandes o pequeos, segn se necesiten. 3. Se puede tener acceso a la informacin del archivo desde diferentes programas. 4. Se puede tener gran capacidad de almacenamiento. Una de las tareas ms comunes en programacin son los procesos de lectura y escritura sobre archivos. La informacin almacenada en un archivo pueden ser datos byte o caracteres (texto), y pueden ser ledos en la misma forma.

3.2. Archivos en Java


El lenguaje de programacin Java cuenta con unas 20 clases para el acceso y manejo de archivos, cada una con su propio conjunto especfico de mtodos. Los Archivos en Java se pueden manejar de dos formas con Acceso de flujo en los cuales la informacin del archivo se trata como una secuencia de elementos que deber ser procesados uno seguido despus de otro. Como acceso aleatorio que permite accesar directamente un elemento ubicado en una posicin determinada del archivo. Por facilidad de programacin y utilizacin referenciaremos la primera forma Acceso de Flujo.

3.3. Pasos a seguir para trabajar con archivos en Java:


Si se desea procesar datos de un archivo exsitente, se debe: 1. Abrir el archivo. 2. Leer o introducir los datos en las variables, un elemento a la vez. 3. Cerrar el archivo cuando se termine de trabajar con l.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

35

Para transferir algunos datos de ciertas variables a un archivo, se debe: 1. Abrir el archivo. 2. Extraer o escribir los elementos en la secuencia requerida. 3. Cerrar el archivo cuando se termine de trabajar con l. El siguiente programa crea un archivo datospersonales.dat y escribe la clave, el nombre y la edad de una persona. Por favor digitar, compilar y ejecutar el programa.

Nota: Observar que el proceso de grabar en el archivo requiere la utilizacin de un try-catch FileNotFoundException y IOException estos son obligatorios o no compila el programa. No olvidar cerrar el archivo. archivo.close();

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

36

Se observa en el programa anterior que la Clase DataOutputStream, define un objeto tipo archivo que permite la creacin de un archivo en una ubicacin determinada con diferentes tipo de extensin (.dat, .txt ). Se observa que los mtodos writeInt() permite grabar en el archivo datos numricos de tipo entero. El mtodo writeUTF() permite grabar en el archivo datos tipo cadena de caracteres (String). La Clase FileOutputStream define que el archivo es una archivo de salida que se est creando y almacenado en una ubicacin especifica. El siguiente programa recorre e imprime los datos almacenados datospersonales.dat . Por favor digitar, compilar y ejecutar el programa. en el archivo

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

37

Se observa en el programa anterior que la Clase DataOutputStream, define un objeto tipo archivo que permite el acceso a un archivo en una ubicacin determinada con diferentes tipo de extensin (.dat, .txt ). Se observa que los mtodos readInt() permite leer desde un archivo datos numricos de tipo entero. El mtodo readUTF() permite leer desde un archivo datos tipo cadena de caracteres (String). La Clase FileInputStream define que el archivo es un archivo de entrada que se est accesando desde una ubicacin especfica. Los mtodos de DATAINPUTSTREAM que se utilizan para la lectura de los datos de los archivos son los siguientes: int read(byte[] b) int read(byte[] b, int off, int len) boolean readBoolean() byte readByte() char readChar() double readDouble() float readFloat() void readFully(byte[] b) void readFully(byte[] b, int off, int len) int readInt() String readLine() long readLong() short readShort() int readUnsignedByte() int readUnsignedShort() String readUTF() static readUTF(DataInput in) String int skipBytes(int n)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

38

Unidad 3

Aplicaciones de entorno grfico en java


Las aplicaciones comerciales que se desarrollan en la actualidad requieren de una alta dosis de componentes grficos que garanticen una interfaz de usuario amigable y muy entendible por parte del usuario. Para ello es indispensable el conocimiento y manejo de controles de programacin bsicos que permitan al desarrollador su integracin y diseo para el logro de interfaces de calidad. En esta unidad se describen los principales paquetes grficos que utiliza Java y adems los principales componentes grficos como lo son ventanas de dialogo, ventanas contenedoras, controles bsicos y toda la estructura de programacin necesaria para su funcionamiento.

1. Paquetes Grficos
1.1. Paquete swing
El paquete swing es un paquete que rene un extenso conjunto de componentes que van desde los ms simples, como etiquetas, hasta los ms complejos, como tablas, rboles, y documentos de texto con estilo. Casi todos los componentes swing descienden de una misma clase base llamada JComponent que desciende de la clase de awt Container.

Imagen tomada de: http://www.usuarios.lycos.es/manualesjava/manuales/swing/swing.pdf

javax.swing: Rene el conjunto de componentes grficos bsicos de swing, para el desarrollo de interfaces de usuario. javax.swing.border: Rene el conjunto de clases e interfaces que se usan para definir estilos de bordes especficos de los componentes grficos del paquete swing. javax.swing.colorchooser: Rene el conjunto de clases e interfaces que dan soporte al componente JColorChooser, usado para seleccin de colores. javax.swing.event: El paquete contiene todos los oyentes y eventos especficos de Swing. Los componentes Swing tambin soportan eventos y oyentes definidos en java.awt.event.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

40

javax.swing.table: Rene el conjunto de clases e interfaces para dar soporte al control de JTable. Este componente se usa para manejar datos en forma de hoja de clculo. javax.swing.text: Rene el conjunto de clases e interfaces usadas por los componentes de texto, incluyendo soporte para documentos con o sin estilo. javax.swing.tree: Rene el conjunto clases e interfaces que dan soporte al componente JTree. Este componente se usa para mostrar y manejar datos que guardan alguna jerarqua. javax.swing.undo: El paquete undo contiene soporte para implementar y manejar la funcionalidad deshacer/rehacer.

1.2. Paquete awt


AWT (Abstract Window Toolkit) es un paquete diseado para la creacin de interfaces grficas de usuario es decir manejo de controles, manejo de color y programacin. AWT Es un conjunto de clases que permiten el desarrollo de diferentes tipos de interfaces. La mayora de los componentes AWT descienden de la clase java.awt.Component.

Imagen tomada de: http://www.usuarios.lycos.es/manualesjava/manuales/swing/swing.pdf

La combinacin de clases grficas del paquete awt y el paquete swing, permiten el diseo de interfaces de usuario amigables que garanticen una interaccin dinmica que permite la creacin de una aplicacin comercial.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

41

2. Ventanas Grficas
2.1. JOptionPane
Es una clase que permite la creacin de diferentes tipos de ventanas de dialogo, desde ventanas para mostrar mensajes hasta ventanas de ingreso de informacin. La clase pertenece al paquete javax.swing.

2.1.1. Ventanas para Mostrar mensajes:


JOptionPane.showMessageDialog (null, "Mensaje, Titulo", TipoVentana);

Digite, compile y ejecute el siguiente programa para visualizar las diferentes formas de las ventanas de dialogo de mensajes.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

42

2.1.2. Ventanas para solicitar informacin:


JOptionPane.showInputDialog ("Mensaje");

Digite, compile y ejecute el siguiente programa para visualizar la forma de utilizacin de la ventana de ingreso de datos

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

43

2.1.3. Ventanas para confirmar informacin:


JOptionPane.showConfirmDialog (null, "Mensaje", titulo, JOptionPane.YES_NO_OPTION);

Digite, compile y ejecute el siguiente programa para visualizar la forma de utilizacin de la ventana de confirmacin.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

44

2.2. JPanel y JFrame


1. JPanel: Es una clase de tipo contenedor que permite colocar controles bsicos de una aplicacin, utiliza un Controlador de Distribucin para posicionar y dimensionar sus componentes. Los JPanel se utilizan para organizar el diseo de los controles de una aplicacin y por ende su ubicacin dentro de una clase superior, en este caso un JFrame. JPanel mipanel = new JPanel (); // Creacin del Panel mipanel.add (objeto1); // adicionar controles al panel, cada control se mipanel.add (objeto2); // debe adicionar de forma individual mipanel.add (.);

JFrame: es una clase contenedora de orden superior que permite colocar diferentes tipos de controles para disear interfaces de usuario, dentro de estos controles se pueden referenciar otros tipos de contenedores de nivel menor, como lo son los JPane. JFrame miframe = new JFrame (); // creacin de un Frame (Formulario) miframe.add (mipanel); // adicionar el Panel al Formulario miframe.getContentPane ().add (objeto1); // adicionar controles al Formulario miframe.setVisible (true); // hacer visible el formulario miframe.setTitle (Titulo); // colocar un titulo al formulario miframe.setSize (ancho, alto); // dar tamao al formulario

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

45

A continuacin se describe un ejemplo que genera un formulario en blanco que utiliza como contenedor de controles un JPanel y como contenedor superior un JFrame. Por favor digitar, compilar y ejecutar el programa.

El resultado del programa sera:

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

46

Tambin se pueden realizar las interfaces sin necesidad de utilizar una clase contenedora JPanel, sino directamente el JFrame. Por favor digitar, compilar y ejecutar el siguiente programa. Otra Forma

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

47

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

48

3. Controles Bsicos
1. JButton: Clase para la creacin de botones de comando, esta clase pertenece al paquete javax.swing. Para utilizar un botn dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos: 1. Declarar el objeto JButton btnnombre_boton; 2. Crear el objeto. btnnombre_boton=new JButton (Titulo_caption) 3. Dar posicin al objeto botn. btnnombre_boton.setBounds (columna, fila, ancho, alto); 4. Agregar el objeto botn al formulario getContentPane ().add (btnnombre_boton); Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

49

En esta forma se pueden crear los botones directamente sobre un JFrame.

2. JTextField: Clase para la creacin de cajas de texto, esta clase pertenece al paquete javax.swing. Para utilizar una caja de texto dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar la caja de texto


JTextField txtnombre_cajatexto;

2. Crear el objeto.

3. Dar posicin al objeto botn.

txtnombre_cajatexto=new JTextField (); txtnombre_cajatexto.setBounds (columna, fila, ancho, alto); getContentPane ().add (txtnombre_cajatexto);

4. Agregar el objeto botn al formulario

Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

50

3. JLabel: Clase para la creacin de etiquetas, esta clase pertenece al paquete javax.swing. Para utilizar una etiqueta dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar la Etiqueta
JLabel lblnombre_etiqueta;

2. Crear el objeto.

lblnombre_etiqueta=new JLabel ();

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

51

3. Dar posicin al objeto botn.

4. Agregar el objeto botn al formulario

lblnombre_etiqueta.setBounds (columna, fila, ancho, alto); getContentPane ().add (lblnombre_etiqueta);

Por favor digitar, compilar y ejecutar el siguiente programa.

4. JRadioButton: Clase para la creacin de botones de opcin (Botones de radio), esta


clase pertenece al paquete javax.swing. Para utilizar Botones de opcin dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

52

1. Declarar los Botones de opcin (Botones de radio) JRadioButton rdbnombre_botonopcion1; JRadioButton rdbnombre_botonopcion2; 2. Declarar el contenedor ButtonGroup nombre_grupo; 3. Crear el objeto. rdbnombre_botonopcion1 =new JRadioButton (Titulo); rdbnombre_botonopcion2 =new JRadioButton (Titulo); 4. Crear el contenedor nombre_grupo = new ButtonGroup (); 5. Agregar objetos al contenedor nombre_grupo.add (rdbnombre_botonopcion1); nombre_grupo.add (rdbnombre_botonopcion2); 6. Dar posicin a los botones de opcin. rdbnombre_botonopcion1.setBounds (columna, fila, ancho, alto); rdbnombre_botonopcion2.setBounds (columna, fila, ancho, alto); 7. Agregar los objetos al formulario getContentPane ().add (rdbnombre_botonopcion1); getContentPane ().add (rdbnombre_botonopcion2);

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

53

5. JCheckBox: Clase para la creacin de casillas de verificacin, esta clase pertenece al paquete javax.swing. Para utilizar una casilla de verificacin dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar las casillas de verificacin

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

54

JCheckBox chknombre_casilla1; JCheckBox chknombre_casilla2;

2. Crear el objeto.
chknombre_casilla1=new JCheckBox (Titulo, estado); chknombre_casilla2=new JCheckBox (Titulo, estado);

3. Dar posicin al objeto botn.


chknombre_casilla1.setBounds (columna, fila, ancho, alto); chknombre_casilla2.setBounds (columna, fila, ancho, alto);

4. Agregar el objeto botn al formulario


getContentPane ().add (chknombre_casilla1); getContentPane ().add (chknombre_casilla2);

Nota: El estado indica si la casilla esta activada o desactivada (true, false) Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

55

6. JComboBox: Clase para la creacin de listas desplegables, esta clase pertenece al


paquete javax.swing. Para utilizar una lista desplegable dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar la Lista desplegable


JComboBox cmbnombre_lista1;

2. Crear el objeto.
cmbnombre_lista1=new JComboBox ();

3. Agregar elementos a la Lista


cmbnombre_lista1.addItem (elemento1); cmbnombre_lista1.addItem (elemento2); cmbnombre_lista1.addItem (elemento3);

4. Dar posicin al objeto botn.


cmbnombre_lista1.setBounds (columna, fila, ancho, alto);

5. Agregar el objeto botn al formulario


getContentPane ().add (cmbnombre_lista1);

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

56

Por favor digitar, compilar y ejecutar el siguiente programa.

Otra forma de realizar el diseo de una interfaz de usuario utilizando los controles anteriores, con el manejo de un contenedor JPanel, en el cual se ponen los controles y luego el panel se adiciona al JFrame. Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

57

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

58

4. Manejo De Eventos
4.1. Introduccin
El Java utiliza varias formas para referenciar y programar los objetos que hacen parte de una interfaz de usuario (JButton, JTextField, JComboBox, JRadioButton, JCheckBox), en cada uno de ellos se utilizan diferentes eventos tales como: el evento click, y el enter que son los ms utilizados. El Java dentro de sus formas de manejar los eventos utiliza una estructura general, de la cual se derivan todos los dems eventos. Adems para poder utilizar la estructura se debe referenciar el paquete java.aw.event que contiene los diferentes mtodos que permitan detectar el objeto y el evento respectivo.

4.2. Estructura general de programacin y manejo de eventos


nombreobjeto.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos; } });

Nota: con esta estructura de programacin se pueden programar los controles de java y estos responden a su evento predeterminado, es decir los JButton al evento click, los JTextField al evento enter, los JRadioButton al evento click, Los JComboBox al evento Click. Por favor digitar, compilar y ejecutar el siguiente programa: un programa que toma un valor de una caja de texto y al darle click al botn de cuadrado, imprime su cuadrado en una ventana de mensaje.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

59

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

60

4.3. DESCRIPCIN GENERAL DE EVENTOS


Todos los controles se pueden programar con la estructura de programacin descrita anteriormente. A continuacin describimos la estructura de programacin de cada control bsico: JButton: El control responde al evento predeterminado Click Btnnombre_boton.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos; } }); JTextField: El control responde al evento predeterminado enter Nombrecaja_texto.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos; } }); JRadioButton: El control responde al evento predeterminado Click Nombreboton_opcion.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos; } }); JCheckBox: El control responde al evento predeterminado Click

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

61

Nombrecasilla.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { if(casilla.isSelected()) { // procesos; // procesos; } } }); El mtodo isSelected () = determina que la casilla esta seleccionada JComboBox: El control responde al evento predeterminado Click Nombrelista.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { String respuesta; Respuesta = (String)nombrelista.getSelectedItem (); if(resp.equals(elementoLista)==true) { //proceso; //proceso; } }); Por favor digitar, compilar y ejecutar el siguiente programa: de acuerdo a las opciones de la lista, imprime un mensaje.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

62

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

63

4.4. EVENTOS ESPECIFICOS


Evento Click

nombreobjeto.addMouseListener (new MouseAdapter () { public void mouseClicked(MouseEvent me){ //proceso; //proceso;

});

Este evento se puede aplicar a la mayora de controles bsicos de programacin. Por favor digitar, compilar y ejecutar el siguiente programa

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

64

Evento enter

txtcaja.addKeyListener (new KeyAdapter () { public void keyPressed(KeyEvent evt){ int key = evt.getKeyCode(); if (key == KeyEvent.VK_ENTER) { // proceso; //proceso; } } });

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

65

Por favor digitar, compilar y ejecutar el siguiente programa

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

66

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

67

Unidad 4

Acceso a Bases de Datos


El Acceso a datos y muy especialmente a bases de datos constituyen un eje primordial en el desarrollo de aplicaciones de software comerciales, que garanticen procesos bsicos de consulta, almacenamiento, actualizacin y eliminacin de informacin referente a contextos y soluciones determinadas. Las actividades comerciales de hoy en da deben tener la informacin como eje primordial y por tal motivo las aplicaciones deben servir de apoyo para su administracin. En esta unidad se describen las principales estructuras, clases, y paquetes que se requieren para realizar operaciones sobre informacin almacenada en una base de datos y que se pueden utilizar para gestionar procesos de una organizacin. .

1. Conexin
1. Tecnologa JDBC (JAVA DATABASE CONNECTIVITY)
La JDBC (Java Database Connectivity) es una API brinda a los programadores de aplicaciones comerciales en java una forma estndar de acceso a las diferentes bases de datos, adems permite la ejecucin y el procesamiento de instrucciones SQL para la realizacin de operaciones bsicas sobre la aplicacin (consulta, almacenamiento, actualizacin y eliminacin) una forma homognea de acceso a diferentes Sistemas de Bases de Datos. El driver JDBC es una implementacin de varias interfaces pertenecientes al paquete java.sql y javax.sql. Este permite traducir las llamadas de acceso a datos de cada sistema de base de datos especfico. Existen varios tipos de drivers JDBC para acceso a los datos de una base de datos determinado, en esta unidad utilizamos el manejo de la arquitectura JDBC ODBC

El ODBC (Open DataBase Connectivity, Conectividad abierta a Base de Datos) fue creado originalmente para proporcionar una API estndar de acceso a Bases de Datos en la plataforma Microsoft Windows para Bases de Datos como por ejemplo SQL Server, Access, FoxPro, Oracle. A travs del tiempo se ha ido ampliando a otras plataformas. El ODBC brinda la posibilidad de establecer un puente entre las llamadas entre la API JDBC y la API ODBC que permite la conexin directa con la base de datos. El nombre del drivers utilizado para la conexin con la base de datos cuando se utiliza la maquina virtual de sun (ms tradicional) es el siguiente:

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

69

sun.jdbc.odbc.JdbcOdbcDriver El nombre del drivers utilizados para la conexin con la base de datos cuando se utiliza la maquina virtual de Microsoft es el siguiente: com.ms.jdbc.odbc.JdbcOdbcDriver Nota 1: Sun ofrece una lista de drivers con un motor de bsqueda en la pgina web: http://industry.java.sun.com/products/jdbc/drivers Nota 2: Hoy en da muchas aplicaciones utilizan una o varias bases de datos para almacenar y recuperar informacin de muy variado tipo. La tecnologa JDBC permite al desarrollador construir aplicaciones que utilicen datos almacenados en una base de datos. La tecnologa JDB|C proporciona al desarrollador de bases de datos una capa de abstraccin por encima de cualquier gestor de base de datos particular y de su interfaz de programacin correspondiente. Mediante esta tecnologa, las aplicaciones son independientes de cualquier gestor concreto y su interoperabilidad es mayor.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

70

2. Creacin del ODBC de la base de datos


Para llevar a cabo la conexin de la base de datos con la aplicacin, se debe crear el origen de datos que permita crear un puente entre el aplicativo y la base de datos. A continuacin se describen los pasos para crear un origen de datos para una Base de Datos de Microsoft ACCESS 2003 o 2007. De igual manera se pueden realizar para otros sistemas de bases de datos como: SQLServer, MySQL etc. Para crear el origen de datos en sistemas operativos como Windows XP, se debe acceder al panel de control, de all seleccionar herramientas administrativas y por ultimo origen de datos de ODBC32.

A continuacin se debe agregar un DSN de usuario. Dar Clic en el botn de agregar

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

71

Luego se debe seleccionar el driver de conexin, de acuerdo al sistema de base de datos con el cual se quiera conectarse. En el caso de ACCESS, se selecciona el driver: Microsoft Access Driver (*.mdb, *.accdb). Dar clic en el botn de finalizar

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

72

Se debe seleccionar la base de datos, dando clic en el botn seleccionar, adems se debe especificar el nombre del origen de datos ya que este es l que se requiere utilizar en el cdigo fuente de Java para la conexin. Por organizacin se sugiere que el nombre del origen de datos sea el mismo que el de la base de datos en este caso Almacn Se da clic en el botn aceptar para terminar la creacin del origen de datos y ya poder codificar la conexin en Java.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

73

3. Pasos de para la conexin


Crear la base de datos en el sistema de bases de datos seleccionado. Crear el origen de datos como se explica en la sesin anterior. Codificar el formulario que queremos conectar, teniendo en cuenta el siguiente conjunto de instrucciones. o Establecer el paquete de conexin

Antes de utilizar las clases de conexin y establecer el driver se debe especificar el paquete de manejo de datos de java, es decir escribir la siguiente lnea de cdigo: import java.sql.*; o Cargar el driver de conexin con la base de datos: y slo requiere la

Cargar el driver o drivers que queremos utilizar es muy fcil implementacin de una lnea de cdigo. Forma 1: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Forma 2: String driver=sun.jdbc.odbc.JdbcOdbcDriver; Class.forName(driver);

Hacer la Conexin con la base de datos utilizando el ODBC creado

A continuacin se debe establecer la relacin entre el driver y el controlador de base de datos utilizado, que depende del origen de datos creado para la base de datos. String url = "jdbc: odbc: Almacen"; Connection con = DriverManager.getConnection(url, , ); En la instruccin String url=jdbc:odbc: Almacn se establece el nombre del origen de datos que comunica con la base de datos creada. A continuacin se crea un objeto de la clase Connection que establece la conexin directa con el origen de datos.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

74

Nota 3: El cdigo de Conexin se debe especificar dentro de una excepcin en un bloque try-catch que controle la SQLException. Excepcin que se produce en el acceso a la base de datos. Nota 4: Esta forma de conexin es recomendada para diferentes sistemas de bases de datos, pero especialmente ACCESS y SQLServer.

1. Ejemplo de conexin con base de datos


Para el siguiente ejemplo utilizamos una base de datos de Access llamada Almacn.

Luego de tener la base de datos procedemos a la creacin del origen de datos ODBC, que se explico en el tema anterior y lo llamamos: Almacn A continuacin referenciamos el cdigo Java que permite establecer la conexin con la base de datos

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

75

El cdigo de conexin de con la base de datos se debe referenciar dentro del constructor de la clase. Se anexa ejemplo completo de conexin con un formulario Clientes. Clientes1.java

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

76

4. Operaciones Bsicas
4.1. Operaciones de bsqueda
Para la creacin de operaciones de bsqueda sobre la base de datos se deben llevar a cabo las siguientes opciones: Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operacin determinada. En este caso una sentencia de tipo select

Statement sql; String cadena = select * from Clientes where cedula=+txtcedula.getText () +; sql = con.createStatement (cadena); Crear un objeto de la clase ResultSet que permita almacenar el resultado de la consulta de tipo select que retorna unos resultados de acuerdo a la consulta realizada.

ResultSet rs; Ejecutar la sentencia SQL para que se lleve a cabo la operacin solicitada y almacenar el resultado de forma temporal en un objeto de tipo ResultSet.

rs = sql.executeQuery (cadena); El siguiente ejemplo es el cdigo que permite consultar la informacin de un cliente que se encuentra almacenado en la base de datos cuando da enter en la cedula.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

77

A continuacin se refencia en el siguiente archivo el cdigo completo de Java para buscar un cliente en una Tabla Clientes de la base de datos. Buscar.java (Insertar el CD y buscar el material de apoyo)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

78

4.2. Operaciones de Almacenamiento


Para la creacin de operaciones de almacenamiento de informacin sobre la base de datos se deben llevar a cabo las siguientes opciones: Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operacin determinada. En este caso una sentencia de tipo insert into

Statement sql; String cadena = insert into clientes values (+txtcedula.getText()+, Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

79

+txtnombre.getText(),+txttelefono.getText()+); sql = con.createStatement (cadena); Ejecutar la sentencia SQL para que se lleve a cabo la operacin solicitada y se actualice la informacin de la base de datos.

sql.executeUpdate (cadena); El siguiente muestra el cdigo que permite almacenar la cedula, el nombre y el telfono de un cliente en la base de datos cuando se da clic en el botn de Guardar.

A continuacin se referencia en el siguiente archivo el cdigo completo de Java para almacenar un cliente en una Tabla Clientes de la base de datos. Guardar.java(Insertar el CD y buscar el material de apoyo)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

80

4.3. Operaciones de Actualizacin


Para la creacin de operaciones de actualizacin de la informacin almacenada en la base de datos se deben llevar a cabo las siguientes opciones: Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operacin determinada. En este caso una sentencia de tipo update

Statement sql;

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

81

String cadena = update clientes set nombre= +txtnombre.getText()+, telefono=+txttelefono.getText()+ where cedula = +txtcedula.getText()+; sql = con.createStatement (cadena); Ejecutar la sentencia SQL para que se lleve a cabo la operacin solicitada y se actualice la informacin de la base de datos.

sql.executeUpdate (cadena); El siguiente cdigo fuente permite actualizar el nombre y el telfono de un cliente en la base de datos cuando se da clic en el botn de actualizar.

A continuacin se referencia en el siguiente archivo el cdigo completo de Java para actualizar la informacin de un cliente en una Tabla Clientes de la base de datos. Actualizar.java (Insertar el CD y buscar el material de apoyo)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

82

4.4. Operaciones de Eliminacin


Para la creacin de operaciones de eliminacin de informacin sobre la base de datos se deben llevar a cabo las siguientes opciones: Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operacin determinada. En este caso una sentencia de tipo delete

Statement sql;

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

83

String cadena = delete * from Clientes where cedula=+txtcedula.getText () +; sql = con.createStatement (cadena); Ejecutar la sentencia SQL para que se lleve a cabo la operacin solicitada y se elimine la informacin de la base de datos.

sql.executeUpdate (cadena); El siguiente cdigo permite eliminar un registro especifico de la tabla clientes dependiendo de la cedula digitada todo al dar clic en el botn de eliminar.

A continuacin se referencia en el siguiente archivo el cdigo completo de Java para eliminar la informacin de un cliente en una Tabla Clientes de la base de datos. Eliminar.java (Insertar el CD y buscar el material de apoyo)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

84

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

85

5. Tablas Y Consultas
5.1. Introduccin al manejo de tablas
Para el manejo de tablas en java se utiliza la clase JTable, esta clase se utiliza para listar, organizar y ordenar informacin proveniente de una base de datos. La clase JTable se encarga de la parte grafica, que es la que se visualiza dentro del formulario La clase JTable brinda mucha facilidad, ya que permite la creacin de tablas bsicas y muy sencillas, hasta tablas de alta complejidad de informacin y estructura. Para la creacin de tablas se requieren los siguientes pasos e instrucciones:

1. Especificar el paquete que referencia las clases para el manejo de la tabla


import javax.swing.table.DefaultTableModel;

2. Declarar un objeto de la clase JTable


final JTable tabla;

3. Especificar un vector de caracteres que especifique los ttulos de la tabla


String[] titColumna = {"Cedula", "Nombre", "Telefono", };

4. Definir una matriz de objetos que permita listar la informacin que se visualiza en la
tabla Object[][] data ={{}};

5. Establecer un objeto de la clase DefaultTableModel que permite realizar el trabajo


interno sobre la tabla, de tal manera que se puedan agregar y quitar registros. final DefaultTableModel dtm; dtm= new DefaultTableModel(data, titColumna); tabla = new JTable(dtm);

6. Colocar la tabla sobre una clase JScrollPane para permitir su visualizacin


final JScrollPane panel = new JScrollPane( tabla );

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

86

5.2. Propiedades bsicas de las tablas


tabla.setEnabled (true): Permite que la tabla se active para ser modificada en tiempo de ejecucin. tabla.setShowHorizontalLines (true): Permite colocar lneas horizontales a la tabla tabla.setRowSelectionAllowed (true): Permite seleccionar los registros de la tabla tabla.setColumnSelectionAllowed (true): Permite la seleccin de los campos de la tabla tabla.setSelectionForeground ( Color.white ): Permite establecer un color de seleccin dtm.addRow(newRow): Agrega registros a la tabla

5.3. Consultas sobre las tablas


Una de las mayores utilidades de las tablas es el empleo para consultas sobre bases de datos. A continuacin se especifica un segmento de un programa que consulta informacin de una base de datos y las listas sobre la tabla de Java.

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

87

A continuacin se anexa el programa completo de manejo de Tablas en Java, que permite consultar informacin sobre una base de datos en ACCESS. Tabla1.java (Insertar el CD y buscar el material de apoyo)

Tecnolgico de Antioquia Institucin Universitaria Vicerrectora Acadmica

88

Bibliografa

Bibliografa

1. Lima Daz Felipe. JAVA 2, Madrid. Editorial Anaya Multimedia. 2000 2. NAUGHTON Patrick, SCHILDT Herbert. JAVA Manual de Referencia. Madrid. McGraw Hill. 2000 3. DOCUMENTACIN OFICIAL DE LA SUN MICROSYSTEMS DE JAVA DEVELOPMENT KIT VERSIONI 1.3, 1.3 RELASE CANDIDATE 1, 1.3 RELASE CANDIDATE 2, 1.3 RELASE CANDIDATE 3, 1.3 BETA, 1.2.2 , 1.2.1. DISPONIBLE EN LA RED EN EL SITO OFICIAL DE JAVA: HTTP://JAVA.SUN.COM 4. Java Didctica y Programacin, K.Arnold e J. Gosling, Addison-Wesley Primera edicin, Marzo de 1997 5. DEITEL & DEITEL. Cmo programar en Java, Pearson-Prentice Hall. 6. DECKER. Programacion con java.Thomson 7. DECEMBER, John. Introduccin a Java 8. GRIF, Steven W. 1001 Tps para programar con java 9. BISHOP, Judy. Java. Fundamentos de Programacin, Addsson-Wesley. 10. BOBADILLA, Jess. Java a travs de ejemplos. Coedici6n: Alfaomega-Rama. 11. FROUFE, Agustn. Java 2: Manual del programador y tutora, Alfaomega, 2003, Mxico 12. THOMAS, C. Introduccin a la programacin orientada a objetos con Java, Mc graw Hill, 2000, Mxico

Cibergrafa

Cibergrafa

La Biblia de JAVA 2. Obtenido http://www.todoprogramas.com/programa/librolabibliadejava2

Realizacin

Realizacin

Vicerrector Acadmico John Harvey Garavito Londoo Docente (Autor) Fabio Alberto Vargas Equipo Tcnico P.A.V. Nubia Amparo Giraldo Garca Jhonatan Arroyave Jaramillo Giselle Andrea Tamayo Mrmol

Tecnolgico de Antioquia Institucin Universitaria Plataforma de Aprendizaje Virtual Proyecto P.A.V. 2011

You might also like