Académique Documents
Professionnel Documents
Culture Documents
MÓDULO
Introducción a Java
El Lenguaje de programación Java es una herramienta para el
desarrollo de software que permite la incorporación de un conjunto de
estructuras que facilitan la construcción de software, el Java posee una
mayor facilidad de trabajo ya que cuenta con un sinnúmero de editores
libres que se emplean para el desarrollo, en esta unidad se describe en
forma general una introducción al Java y se da un inicio a las
estructuras de programación con el proceso de entrada y salida de
datos por consola empleando el editor JCreator
1. Generalidades del Lenguaje Java
Aplicaciones tipo consola: son aquellas que se ejecutan en una ventana de MS-
DOS, es decir en la línea de comandos utilizando formato de entrada y salida en
forma de texto.
2
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
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 estáticos o dinámicos.
3
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
1.2. Estructura del Lenguaje
Todo programa en Java tiene que ir en una clase, la cual se debe definir previamente en el
momento de la creación del archivo.Que es un Paquete: una agrupación jerárquica de
objetos, que permiten su fácil localización, además de evitar confusión en uso y propósito 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
localización. Algunos paquetes de Java son los siguientes:
import javax.swing
import java.awt
import java.io
import java.net
Que es una Clase: Es una estructura genérica no tangible que reúne un conjunto de
objetos que comparten las mismas características y funcionalidad y que puede ser utilizadas
por los usuarios en la definición 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
4
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
nombreclase {
//Atributos
//Metodos
}
Que es Un Objeto: Es una Instancia de una Clase, la cual ya tiene definidas sus atributos y
métodos. 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 código de
otro objeto y lo haga parte del objeto, y que objetos que a primera vista sean muy
diferentes compartan un comportamiento en común sin necesidad de repetir código. 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á extensión .java, mientras que el
compilado tendrá extensión .class.
5
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2. INGRESO AL PROGRAMA
Tengamos presente que un editor es una herramienta que permite facilitar la codificación del
lenguaje y su procesos de compilación y ejecución de una manera fácil y sencilla.
JDK 1.4.2
JDK1.5.0
JDK 1.6.0
Instalamos y a programar!
6
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2.2. Editor de Java
Para ingresar al editor necesitamos ubicar en nuestro equipo el programa JCreator, que
varía dependiendo de la versión que se utiliza.
Luego debemos seleccionar la opción de Archivo (File), Nuevo (new), Archivo (File)
7
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Seleccionar el tipo de archivo que se desea construir en este caso un archivo de Java (Java
File).
8
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Escribir el nombre del programa, que por ende se convierte en el nombre de la clase.
Y por ultimo comenzar la codificación con todas las instrucciones y estructuras que se verán
a continuación.
9
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3. SINTAXIS GENERAL DEL
LENGUAJE
3.1. Comentarios
/* Este es un comentario
de varias líneas
de código
*/
Con este tipo de comentarios se pueden desactivar también líneas de código que no se
deseen que sean reconocidas por el compilador y por ende ejecutar.
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 línea.
Es un tipo de comentario es muy similar al de varias líneas pero teniendo en cuenta que la
información comentado será usado por la herramienta javadoc. Se diferencia de los
comentarios de varias líneas ya que se agrega un asterisco al inicio del comentario.
/**
Este tipo de comentarios
los utiliza la
herramienta javadoc
*/
10
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3.2. Identificadores
Son los nombres utilizados para identificar el conjunto de variables, métodos, 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,
números. 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 número de caracteres, pero si es
importante manejar un cantidad moderada y acorde a lo que se está nombrando. Se
diferencia mayúscula y minúscula.
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.
Se define como un valor que no pueda ser modificado durante la ejecución del programa y
que se define directamente en el código de la aplicación, los literales pueden ser números
(enteros, flotantes, dobles), caracteres y cadenas de caracteres.
Se pueden definir literales numéricas a partir de cualquier tipo de dato que maneja Java
para valores numéricos.
11
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
o 123 // literal tipo int
o 123.454 // literal tipo double
o ‘p’
o ‘g’
o “juan”
o “257575”
3.4. OPERADORES
12
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
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)
(tipo)expr Cast a = (int) b
+ Concatenación de cadenas a = "cad1" + "cad2"
. Acceso a variables y métodos a = obj.var1
() Agrupación de expresiones a = (a + b) * c
13
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Otros tipos
char Un solo carácter 16-bit caracteres Unicode
boolean Un valor booleano true o false
Variables de instancia.
Variables de clase.
Son similares a las variables de instancia, con la excepción de que sus valores son los
mismos para todas las instancias de la clase.
Variables locales.
14
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4. Entrada y Salida de Datos por
Consola
15
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Es necesario para el trabajo de entrada y salida de datos por consola la referencia al
paquete import java.io.*;
4.2.1. Condicional:
if ( condición) if (A > B)
proceso; B=10;
if(condición) if (A > B)
proceso1; A=10;
else else
proceso2; A=5;
if (condición)
{
proceso1;
proceso2;
}
else
{
proceso3;
proceso4;
} //Este es el final del condicional.
16
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: Se destaca que cuando un condicional tienen varios procesos debe utilizarse llaves
para referenciar toda la estructura.
Ejemplo de utilización del condicional con entrada y salida por consola que imprime el mayor
de dos números y en caso de ser iguales imprime un mensaje
FOR
Ej:
for (I=1; I<=10; I++)
{
17
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
proceso1;
proceso2;
}
Ejemplo de Utilización de Ciclo for, Programa que genera los números del 1 al 10 en
pantalla utilizando entrada y salida de datos por Consola.
18
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
WHILE
valor_inicial;
while (condicion_final)
{
proceso1;
proceso2;
incremento/actualizar variable;
}
Ej:
I=1;
while ( I<=10 )
{
proceso1;
proceso2;
I++;
}
Ejemplo de Utilización de Ciclo while , Programa que genera los números del 1 al 10 en
pantalla utilizando entrada y salida de datos por Consola.
19
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
DO WHILE
valor_inicial;
do {
proceso1;
proceso2;
incremento/actualizar variable;
}while(condición);
Ej:
I=1;
do {
proceso1;
proceso2;
I++;
}while ( I<=10 );
Ejemplo de Utilización de Ciclo do while , Programa que genera los números del 1 al
10 en pantalla utilizando entrada y salida de datos por Consola.
20
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
SWITCH
switch ( opción )
{
case 1:
proceso1;
break;
case 2:
proceso2;
break;
default:
proceso;
}
21
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Unidad 2
Estructura de
Datos en Java
El manejo y utilización de estructuras de datos es fundamental en los
procesos de desarrollo de software, el Lenguaje de programación Java
proporciona un conjunto de estructuras de almacenamiento temporal y
también de almacenamiento permanente que facilitan los procesos de
consulta de información de una forma fácil, rápida y que no requiere la
utilización de grandes recursos de programación ni tecnológicos. En
esta unidad se describen las principales y más utilizadas estructuras de
datos tanto de almacenamiento temporal (Arreglos), como de
almacenamiento permanente (Archivos).
1. Arreglos
23
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Representación gráfica de un Vector
1.2.1. Declaración
Sintaxis
tipodato nombrevector[ ];
24
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Ejemplo
int numeros [ ];
Sintaxis
nombrevector = new tipodato[tamaño];
Ejemplo
numeros = new int[5];
El siguiente programa llena e imprime un vector dependiendo del tamaño digitado por el
usuario. Por favor digitar, compilar y ejecutar el siguiente programa.
25
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: Los vectores se llena con un ciclo for y se imprimen también con la utilización de un
ciclo for. Los vectores se pueden definir de cualquier tipo de dato (int, float, double, String).
26
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: La cantidad de datos que se expresan en la declaración determinan el tamaño del
vector.
27
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: Las Estructuras de Programación tipo Ciclo (for, while, y do while) permiten el
recorrido de un vector, pero la estructura más recomendada es el ciclo for.
28
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2. Arreglos Bidimensionales
(Matrices)
29
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Esquema realizado por: Equipo Técnico P.A.V Septiembre del 2008
2.2.1. Declaración
Sintaxis
tipodato nombrematriz[ ][ ];
30
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Ejemplo
double salarios [ ][ ];
Sintaxis
nombrematriz = new tipodato[cantidad filas] [cantidad columnas];
Ejemplo
salarios = new double[5][4];
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.
31
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: Para hacer el llenado y la impresión 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:
32
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: El programa anterior muestra la segunda forma de llenar una matriz directamente
desde la declaración. Los datos que se ingresan determinan la dimensión 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.
33
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota: Una Matriz cuadrada es aquellas donde la cantidad de filas es igual a la cantidad de
comunas.
34
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3. Archivos
Una de las tareas más comunes en programación son los procesos de lectura y escritura
sobre archivos. La información almacenada en un archivo pueden ser datos byte o
caracteres (texto), y pueden ser leídos en la misma forma.
El lenguaje de programación Java cuenta con unas 20 clases para el acceso y manejo de
archivos, cada una con su propio conjunto específico de métodos. Los Archivos en Java se
pueden manejar de dos formas con Acceso de flujo en los cuales la información del archivo
se trata como una secuencia de elementos que deber ser procesados uno seguido después
de otro. Como acceso aleatorio que permite accesar directamente un elemento ubicado en
una posición determinada del archivo. Por facilidad de programación y utilización
referenciaremos la primera forma Acceso de Flujo.
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.
35
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
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.
36
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Se observa en el programa anterior que la Clase DataOutputStream, define un objeto tipo
archivo que permite la creación de un archivo en una ubicación determinada con diferentes
tipo de extensión (.dat, .txt ).
Se observa que los métodos writeInt() permite grabar en el archivo datos numéricos de
tipo entero. El método 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 ubicación especifica.
37
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Se observa en el programa anterior que la Clase DataOutputStream, define un objeto tipo
archivo que permite el acceso a un archivo en una ubicación determinada con diferentes
tipo de extensión (.dat, .txt ).
Se observa que los métodos readInt() permite leer desde un archivo datos numéricos de
tipo entero. El método readUTF() permite leer desde un archivo datos tipo cadena de
caracteres (String).
Los métodos 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)
38
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Unidad 3
Aplicaciones de
entorno gráfico en java
Las aplicaciones comerciales que se desarrollan en la actualidad
requieren de una alta dosis de componentes gráficos 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 programación básicos que permitan al desarrollador su
integración y diseño para el logro de interfaces de calidad. En esta
unidad se describen los principales paquetes gráficos que utiliza Java y
además los principales componentes gráficos como lo son ventanas de
dialogo, ventanas contenedoras, controles básicos y toda la estructura
de programación necesaria para su funcionamiento.
1. Paquetes Gráficos
El paquete swing es un paquete que reúne un extenso conjunto de componentes que van
desde los más simples, como etiquetas, hasta los más 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.
40
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
javax.swing.table: Reúne 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
cálculo.
javax.swing.text: Reúne el conjunto de clases e interfaces usadas por los
componentes de texto, incluyendo soporte para documentos con o sin estilo.
javax.swing.tree: Reúne el conjunto clases e interfaces que dan soporte al
componente JTree. Este componente se usa para mostrar y manejar datos que
guardan alguna jerarquía.
javax.swing.undo: El paquete undo contiene soporte para implementar y manejar
la funcionalidad deshacer/rehacer.
La combinación de clases gráficas del paquete awt y el paquete swing, permiten el diseño
de interfaces de usuario amigables que garanticen una interacción dinámica que permite la
creación de una aplicación comercial.
41
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2. Ventanas Gráficas
2.1. JOptionPane
Es una clase que permite la creación de diferentes tipos de ventanas de dialogo, desde
ventanas para mostrar mensajes hasta ventanas de ingreso de información. La clase
pertenece al paquete javax.swing.
Digite, compile y ejecute el siguiente programa para visualizar las diferentes formas de las
ventanas de dialogo de mensajes.
42
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2.1.2. Ventanas para solicitar información:
JOptionPane.showInputDialog ("Mensaje");
43
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2.1.3. Ventanas para confirmar información:
44
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2.2. JPanel y JFrame
1. JPanel: Es una clase de tipo contenedor que permite colocar controles básicos de
una aplicación, utiliza un Controlador de Distribución para posicionar y dimensionar
sus componentes. Los JPanel se utilizan para organizar el diseño de los controles de
una aplicación y por ende su ubicación dentro de una clase superior, en este caso un
JFrame.
JFrame: es una clase contenedora de orden superior que permite colocar diferentes
tipos de controles para diseñar interfaces de usuario, dentro de estos controles se
pueden referenciar otros tipos de contenedores de nivel menor, como lo son los
JPane.
45
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
A continuación 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.
46
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
También 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”
47
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
48
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3. Controles Básicos
1. JButton: Clase para la creación de botones de comando, esta clase pertenece al
paquete javax.swing.
Para utilizar un botón 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 posición al objeto botón.
btnnombre_boton.setBounds (columna, fila, ancho, alto);
4. Agregar el objeto botón al formulario
getContentPane ().add (btnnombre_boton);
49
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
En esta forma se pueden crear los botones directamente sobre un JFrame.
2. JTextField: Clase para la creación 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:
JTextField txtnombre_cajatexto;
2. Crear el objeto.
txtnombre_cajatexto=new JTextField ();
3. Dar posición al objeto botón.
txtnombre_cajatexto.setBounds (columna, fila, ancho, alto);
4. Agregar el objeto botón al formulario
getContentPane ().add (txtnombre_cajatexto);
50
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3. JLabel: Clase para la creación 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 ();
51
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3. Dar posición al objeto botón.
lblnombre_etiqueta.setBounds (columna, fila, ancho, alto);
4. Agregar el objeto botón al formulario
getContentPane ().add (lblnombre_etiqueta);
Para utilizar Botones de opción dentro de un formulario a fin de crear una interfaz de usuario
se deben seguir los siguientes pasos:
52
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
1. Declarar los Botones de opción (Botones de radio)
JRadioButton rdbnombre_botonopcion1;
JRadioButton rdbnombre_botonopcion2;
2. Declarar el contenedor
ButtonGroup nombre_grupo;
3. Crear el objeto.
4. Crear el contenedor
nombre_grupo.add (rdbnombre_botonopcion1);
nombre_grupo.add (rdbnombre_botonopcion2);
53
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
5. JCheckBox: Clase para la creación de casillas de verificación, esta clase pertenece al
paquete javax.swing.
Para utilizar una casilla de verificación dentro de un formulario a fin de crear una interfaz de
usuario se deben seguir los siguientes pasos:
54
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
JCheckBox chknombre_casilla1;
JCheckBox chknombre_casilla2;
2. Crear el objeto.
55
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
6. JComboBox: Clase para la creación 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:
JComboBox cmbnombre_lista1;
2. Crear el objeto.
cmbnombre_lista1.addItem (“elemento1”);
cmbnombre_lista1.addItem (“elemento2”);
cmbnombre_lista1.addItem (“elemento3”);
56
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Por favor digitar, compilar y ejecutar el siguiente programa.
Otra forma de realizar el diseño 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.
57
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
58
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4. Manejo De Eventos
4.1. Introducción
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
más utilizados.
El Java dentro de sus formas de manejar los eventos utiliza una estructura general, de la
cual se derivan todos los demás eventos. Además para poder utilizar la estructura se debe
referenciar el paquete java.aw.event que contiene los diferentes métodos que permitan
detectar el objeto y el evento respectivo.
}
});
Nota: con esta estructura de programación 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 botón de cuadrado, imprime su cuadrado en una
ventana de mensaje.
59
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
60
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4.3. DESCRIPCIÓN GENERAL DE EVENTOS
}
});
}
});
}
});
61
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nombrecasilla.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent nombrevento)
{
if(casilla.isSelected())
{
// procesos;
// procesos;
}
}
});
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.
62
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
63
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4.4. EVENTOS ESPECIFICOS
• Evento Click
//proceso;
//proceso;
}
});
64
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
• Evento enter
if (key == KeyEvent.VK_ENTER)
{
// proceso;
//proceso;
}
}
});
65
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Por favor digitar, compilar y ejecutar el siguiente programa
66
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
67
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
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 básicos de consulta, almacenamiento, actualización y
eliminación de información referente a contextos y soluciones determinadas.
Las actividades comerciales de hoy en día deben tener la información como eje
primordial y por tal motivo las aplicaciones deben servir de apoyo para su
administración. En esta unidad se describen las principales estructuras,
clases, y paquetes que se requieren para realizar operaciones sobre
información almacenada en una base de datos y que se pueden utilizar para
gestionar procesos de una organización.
.
1. Conexión
1. Tecnología JDBC (JAVA DATABASE CONNECTIVITY)
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 estándar de acceso a Bases de Datos en la
plataforma Microsoft Windows para Bases de Datos como por ejemplo SQL Server, Access,
FoxPro, Oracle. A través 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 conexión directa con la base de datos.
El nombre del drivers utilizado para la conexión con la base de datos cuando se utiliza la
maquina virtual de sun (más tradicional) es el siguiente:
69
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
sun.jdbc.odbc.JdbcOdbcDriver
El nombre del drivers utilizados para la conexión 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 búsqueda en la página web:
http://industry.java.sun.com/products/jdbc/drivers
Nota 2: Hoy en día muchas aplicaciones utilizan una o varias bases de datos para
almacenar y recuperar información de muy variado tipo. La tecnología JDBC permite al
desarrollador construir aplicaciones que utilicen datos almacenados en una base de datos.
La tecnología JDB|C proporciona al desarrollador de bases de datos una capa de abstracción
por encima de cualquier gestor de base de datos particular y de su interfaz de programación
correspondiente. Mediante esta tecnología, las aplicaciones son independientes de cualquier
gestor concreto y su interoperabilidad es mayor.
70
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
2. Creación del ODBC de la base de
datos
Para llevar a cabo la conexión de la base de datos con la aplicación, se debe crear el origen
de datos que permita crear un puente entre el aplicativo y la base de datos. A continuación
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.
71
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Luego se debe seleccionar el driver de conexión, 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).
72
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Se debe seleccionar la base de datos, dando clic en el botón seleccionar, además se debe
especificar el nombre del origen de datos ya que este es él que se requiere utilizar en el
código fuente de Java para la conexión. Por organización se sugiere que el nombre del
origen de datos sea el mismo que el de la base de datos en este caso “Almacén”
Se da clic en el botón aceptar para terminar la creación del origen de datos y ya poder
codificar la conexión en Java.
73
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
3. Pasos de para la conexión
• Crear la base de datos en el sistema de bases de datos seleccionado.
• Crear el origen de datos como se explica en la sesión anterior.
• Codificar el formulario que queremos conectar, teniendo en cuenta el siguiente
conjunto de instrucciones.
Antes de utilizar las clases de conexión y establecer el driver se debe especificar el paquete
de manejo de datos de java, es decir escribir la siguiente línea de código:
import java.sql.*;
Cargar el driver o drivers que queremos utilizar es muy fácil y sólo requiere la
implementación de una línea de código.
Forma 1:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Forma 2:
String driver=“sun.jdbc.odbc.JdbcOdbcDriver”;
Class.forName(driver);
74
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Nota 3: El código de Conexión se debe especificar dentro de una excepción en un bloque
try-catch que controle la SQLException. Excepción que se produce en el acceso a la base de
datos.
Para el siguiente ejemplo utilizamos una base de datos de Access llamada Almacén.
Luego de tener la base de datos procedemos a la creación del origen de datos ODBC, que se
explico en el tema anterior y lo llamamos: Almacén
A continuación referenciamos el código Java que permite establecer la conexión con la base
de datos
75
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
El código de conexión de con la base de datos se debe referenciar dentro del constructor de
la clase. Se anexa ejemplo completo de conexión con un formulario Clientes. Clientes1.java
76
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4. Operaciones Básicas
Para la creación de operaciones de búsqueda sobre la base de datos se deben llevar a cabo
las siguientes opciones:
Statement sql;
ResultSet rs;
rs = sql.executeQuery (cadena);
77
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
A continuación se refencia en el siguiente archivo el código 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)
78
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4.2. Operaciones de Almacenamiento
Statement sql;
String cadena = “insert into clientes values (‘”+txtcedula.getText()+”’,
79
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
‘”+txtnombre.getText()”’,’”+txttelefono.getText()+”’)”;
sql = con.createStatement (cadena);
sql.executeUpdate (cadena);
El siguiente muestra el código que permite almacenar la cedula, el nombre y el teléfono de
un cliente en la base de datos cuando se da clic en el botón de Guardar.
80
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4.3. Operaciones de Actualización
Statement sql;
81
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
String cadena = “update clientes set nombre= ‘”+txtnombre.getText()+”’,
telefono=’”+txttelefono.getText()+”’ where cedula = ‘”+txtcedula.getText()+”’”;
sql = con.createStatement (cadena);
sql.executeUpdate (cadena);
82
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
4.4. Operaciones de Eliminación
Statement sql;
83
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
String cadena = “delete * from Clientes where cedula=’”+txtcedula.getText () +”’”;
sql = con.createStatement (cadena);
• Ejecutar la sentencia SQL para que se lleve a cabo la operación solicitada y se elimine
la información de la base de datos.
sql.executeUpdate (cadena);
84
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
85
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
5. Tablas Y Consultas
Para el manejo de tablas en java se utiliza la clase JTable, esta clase se utiliza para listar,
organizar y ordenar información 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 creación de tablas básicas y muy
sencillas, hasta tablas de alta complejidad de información y estructura.
import javax.swing.table.DefaultTableModel;
4. Definir una matriz de objetos que permita listar la información que se visualiza en la
tabla
86
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
5.2. Propiedades básicas de las tablas
tabla.setEnabled (true): Permite que la tabla se active para ser modificada en tiempo de
ejecución.
tabla.setShowHorizontalLines (true): Permite colocar líneas horizontales a la tabla
tabla.setRowSelectionAllowed (true): Permite seleccionar los registros de la tabla
tabla.setColumnSelectionAllowed (true): Permite la selección de los campos de la tabla
tabla.setSelectionForeground ( Color.white ): Permite establecer un color de selección
dtm.addRow(newRow): Agrega registros a la tabla
Una de las mayores utilidades de las tablas es el empleo para consultas sobre bases de
datos.
A continuación se especifica un segmento de un programa que consulta información de una
base de datos y las listas sobre la tabla de Java.
87
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
A continuación se anexa el programa completo de manejo de Tablas en Java, que permite
consultar información sobre una base de datos en ACCESS. Tabla1.java (Insertar el CD y
buscar el material de apoyo)
88
Tecnológico de Antioquia Institución Universitaria
Vicerrectoría Académica
Bibliografía
Bibliografía
Cibergrafía