You are on page 1of 66

Programación Visual

Instituto Tecnológico de
San Juan del Río

Manual de Prácticas
Programación Visual
Ingeniería Electrónica
Lic. Guadalupe Flores Díaz

2015
INTRODUCCIÓN

Esta asignatura de Programación Visual es una asignatura aporta al perfil profesional


la capacidad para diseñar e implementar interfaces gráficas de usuario para facilitar la
interacción entre el ser humano, los equipos y los sistemas electrónicos.

Se trata de una asignatura del 4 semestre, presenta conceptos que permitirán al


estudiante desarrollar aplicaciones de computadora que cuenten con interfaces
amigables, que van desde la obtención, almacenamiento, procesamiento y
despliegue de datos, el temario se encuentra organizada en cuatro unidades: en la
primera unidad se abordan los fundamentos teóricos del desarrollo e importancia de
las interfaces gráficas de usuario y sus aplicaciones, enmarcadas en el contexto de la
metodología de la programación orientada a objetos. En el presente manual se
añaden prácticas de laboratorio que permiten al estudiante la identificación de
objetos, sus propiedades y sus métodos, así como prácticas que le permitían
identificar la forma en la que se debe programar bajo dicho paradigma, identificando
los elementos principales como clases, objetos, herencia, polimorfismo entre otros.

En la unidad dos se desarrollan los temas referentes a los elementos básicos para el
diseño y desarrollo de interfaces gráficas de usuario. Se deben cubrir estos temas con
la profundidad necesaria, caracterizando sus propiedades, métodos y atributos de
manera práctica, enfatizando la correcta utilización de cada uno de estos
componentes. Para abordar los temas antes mencionado en esta segunda unidad se
utiliza el lenguaje de JAVA, donde el estudiante conoce los diferentes elementos que
conforman una interfaz gráfica utilizando los métodos y atributos de cada uno de ellos
para poder personalizar las interfaces creadas.

En la unidad tres se tratan los temas referentes a los elementos avanzados para el
diseño y desarrollo de interfaces gráficas de usuario, entre ellos aquéllos que facilitan
la organización y visualización de datos, así como los que permiten una gestión
básica de bases de datos. Las practicas presentadas para el abordaje de estos
temas, implica el desarrollo de aplicaciones sencillas donde se pueda integrar los

Fecha de Actualización 26/08/2010 Página 1


elementos estudiados en la unidad II.

Se incluye una cuarta unidad en la que se propone desarrollar Aplicaciones con


interfaz gráfica que sean enfocadas a la interacción entre el usuario, los sistemas
electrónicos y dispositivos externos a la computadora, sugiriendo áreas como la
adquisición y procesamiento de datos, control de dispositivos (actuadores, motores) y
almacenamiento de información (bases de datos).

Fecha de Actualización 26/08/2010 Página 2


Unidad 1.
Interfaces Gráficas de Usuario

1.1. Fundamentos de programación orientada a objetos.

1.2. Introducción a la programación de interfaces graficas de usuario.

1.3. Lenguajes de programación para el desarrollo de interfaces graficas de usuario.

Fecha de Actualización 26/08/2010 Página 3


Subtema: Fundamentos de la programación Orientada a
Práctica 1 Objetos

Identificación de elementos de los objetos


1.- OBJETIVO
De una lista de objetos del mundo natural, identificar los atributos y métodos de cada uno de ellos

2.- MARCO TEÓRICO


Definición de Objeto

Según el Diccionario del Uso del Español de María Moliner (Ed. Gredos, 1983), en la tercera acepción del
término objeto podemos leer: "Con respecto a una acción, una operación mental, un sentimiento, etc., cosa de
cualquier clase, material o espiritual, corpórea o incorpórea, real o imaginaria, abstracta o concreta, a la cual
se dirigen o sobre la que se ejercen."

En POO, un objeto es un conjunto de datos y métodos; como imaginamos que se habrá quedado igual, le
vamos a dar más pistas.

Los datos son lo que antes hemos llamado características o atributos, los métodos son los comportamientos
que pueden realizar.

Lo importante de un sistema POO es que ambos, datos y métodos están tan intrínsecamente ligados, que
forman una misma unidad conceptual y operacional. En POO, no se pueden desligar los datos de los métodos
de un objeto. Así es como ocurre en el mundo real.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR

Fecha de Actualización 26/08/2010 Página 4


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Hojas en blanco
 Lápices
 Goma
 Lista de objetos proporcionada porcel docente

4.- PROCEDIMIENTO
1. Identifica la lista de características, valores y acciones que realiza cada uno de los objetos
listados a continuación.
a. Computadora
b. Teléfono Celular
c. Refrigerador
d. Suéter
e. Ventana
f. Camisa
g. Microondas
h. Lápiz
i. Vaso
j. Licuadora

5. RESULTADOS
En la Tabla siguiente, documenta la lista d características, valores y métodos encontrados para cada uno de
los objetos de la lista presentada por el docente

Objeto Características Valores Métodos


a. Computadora
b. Teléfono
Celular
c. Refrigerador

Fecha de Actualización 26/08/2010 Página 5


d. Suéter
e. Ventana
f. Camisa
g. Microondas
h. Lápiz
i. Vaso
j. Licuadora

6. CONCLUSIONES

Escribe las conclusiones a las que llegaste al término de la presente práctica

7.-BIBLIOGRAFÍA
1. Java con Programación Orientada a Objetos. Editoria ITEMEX
2. Lenguaje de programación Java. Sun Microsystems, Inc. (2008). SL-275-SE6.
3. Conceptos de la programación orientada a objetos. Alfonseca, M. Alcalá, A.

Fecha de Actualización 26/08/2010 Página 6


SUBTEMA: Fundamentos de
Práctica 2 Programación Orientada a Objetos

Programación de Métodos en Java


1.- OBJETIVO
Analizar las diferencias existentes en programas con el uso de métodos y sin métodos con y sin parámetros

2.- MARCO TEÓRICO


Métodos en JAVA

Los métodos definen el comportamiento de los objetos de una clase dada (lo que podemos hacer con los
objetos de esa clase) Los métodos exponen la interfaz de una clase. Un método define la secuencia de
sentencias que se ejecuta para llevar a cabo una operación:
La implementación de la clase se oculta del exterior.
Los métodos...
 Nos dicen cómo hemos de usar los objetos de una clase.
 Nos permiten cambiar la implementación de una clase sin tener que modificar su interfaz (esto es, sin
tener que modificar el código que utiliza objetos de la clase cuya implementación cambiamos)
Sintaxis en Java:
modificadores tipo nombre ( parámetros )
{
cuerpo

Fecha de Actualización 26/08/2010 Página 7


}
La estructura de un método se divide en:
• Cabecera (determina su interfaz)
Modificadores tipo nombre ( parámetros )

• Cuerpo (define su implementación)


{
// Declaraciones de variables
...
// Sentencias ejecutables
...
// Devolución de un valor (opcional)
...
}
En el cuerpo del método se implementa el algoritmo necesario para realizar la tarea de la que el método es
responsable. El cuerpo de un método se puede interpretar como una caja negra que contiene su
implementación:
 El método oculta los detalles de implementación.
 Cuando utilizamos un método, sólo nos interesa su interfaz.
Ejemplo
El punto de entrada a una aplicación escrita en Java
public static void main (String[] args)

Fecha de Actualización 26/08/2010 Página 8


{
...
}
 El modificador de acceso public indica que se puede acceder a este miembro de la clase desde el
exterior de la clase.
 El modificador static indica que se trata de un método de clase (un método común para todos los
objetos de la clase).
 La palabra reservada void indica que, en este caso el método main no devuelve ningún valor.
 En general, no obstante, los métodos son capaces de devolver un valor al terminar su ejecución.
 Los paréntesis nos indican que se trata de un método: Lo que aparece entre paréntesis son los
parámetros del método (en este caso, un vector de cadenas de caracteres, que se representan en Java
con objetos de tipo String ).
 El cuerpo del método va delimitado por llaves { }
.
El texto correspondiente al código que se ejecuta al invocar un método se sangra con respecto a la
posición de las llaves que delimitan el cuerpo del método.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

4.- PROCEDIMIENTO
1. Copia cuidadosamente el siguiente programa el JCreator

Fecha de Actualización 26/08/2010 Página 9


import java.lang.*;
import java.io.*;

public class SinMetodos


{
public static void main (String arg[]) throws IOException
{
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
double cPracLb=0,calp1=0,calp2=0,calp3=0;
double ctarea1=0,ctarea2=0;
double cexamFin=0,cproyFin=0;
double practicas=0,tareas=0,proyFin=0,ExamF=0,parciales=0;
double promedio=0;

System.out.print("Ingresa la Calificación de Practicas de Laboratorio: ");


cPracLb=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación del parcial 1 : ");


calp1=Double.parseDouble(teclado.readLine());
System.out.print("Ingresa la Calificación del parcial 2 : ");
calp2=Double.parseDouble(teclado.readLine());
System.out.print("Ingresa la Calificación del parcial 3 : ");
calp3=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación de la tarea 1 : ");


ctarea1=Double.parseDouble(teclado.readLine());
System.out.print("Ingresa la Calificación de la tarea 2 : ");
ctarea2=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación del Examen Final : ");


cexamFin=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación del Proyecto Final : ");


cproyFin=Double.parseDouble(teclado.readLine());

parciales = (calp1+calp2+calp3)/3*0.30;
proyFin = cproyFin*0.20;
ExamF = cexamFin*0.10;
practicas = cPracLb*.35;

Fecha de Actualización 26/08/2010 Página 10


tareas = (ctarea1+ctarea2)/2*0.05;

promedio=parciales+proyFin+ExamF+practicas+tareas;
System.out.print("El promedio Final es : "+promedio);
}

2. Compila el programa copiado, y en caso de tener errores, verifica y corrige lo que te haya
marcado como error
3. Para facilitar el análisis de los resultados, escribe 100 en cada valor que te solicita
4. Contesta las siguientes preguntas
a. ¿Cuál es el resultado obtenido?
b. En que sección se encuentra escrito el código que se ha ejecutado para obtener e
resultado?
5. Ahora copia el siguiente programa
import java.lang.*;
import java.io.*;

public class ConMetodos


{
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
public static void main (String arg[]) throws IOException
{
ConMetodos programa = new ConMetodos();
programa.ObtenerPromedio();
}
void ObtenerPromedio() throws IOException
{
double cPracLb=0,calp1=0,calp2=0,calp3=0;
double ctarea1=0,ctarea2=0;
double cexamFin=0,cproyFin=0;
double practicas,tareas,proyFin,ExamF,parciales;

Fecha de Actualización 26/08/2010 Página 11


double promedio=0;

System.out.print("Ingresa la Calificación de Practicas de Laboratorio: ");


cPracLb=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación del parcial 1 : ");


calp1=Double.parseDouble(teclado.readLine());
System.out.print("Ingresa la Calificación del parcial 2 : ");
calp2=Double.parseDouble(teclado.readLine());
System.out.print("Ingresa la Calificación del parcial 3 : ");
calp3=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación de la tarea 1 : ");


ctarea1=Double.parseDouble(teclado.readLine());
System.out.print("Ingresa la Calificación de la tarea 2 : ");
ctarea2=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación del Examen Final : ");


cexamFin=Double.parseDouble(teclado.readLine());

System.out.print("Ingresa la Calificación del Proyecto Final : ");


cproyFin=Double.parseDouble(teclado.readLine());

parciales = porcentaje(calp1,calp2,calp3);
proyFin = porcentaje(cproyFin,2);
ExamF = porcentaje(cexamFin,3);
practicas = porcentaje(cPracLb,1);
tareas = porcentaje(ctarea1,ctarea2);
promedio=parciales+proyFin+ExamF+practicas+tareas;
System.out.print("El promedio Final es : "+promedio);
}

double porcentaje (double cal, int criterio) // Porcentaje de practicas de laboratorio 30%
{ // proyecto final 25% y Examen Final 20%
double calPor= 0;
switch (criterio)
{
case 1: calPor=cal * .35;break;

Fecha de Actualización 26/08/2010 Página 12


case 2: calPor=cal * .20;break;
case 3: calPor=cal * .10;break;
default :
}
System.out.println("Porcentaje: "+calPor+" Tipo: "+criterio);

return calPor;

double porcentaje (double cal1, double cal2, double cal3 ) // Porcentaje de 3 examenes
{
double calPor=0,prom=0;
prom=(cal1+cal2+cal3)/3;
calPor=prom*0.30;
System.out.println("Porcentaje Examen: "+calPor);
return calPor;
}
double porcentaje (double tarea1, double tarea2)
{
double calPor=0,prom=0;
prom=(tarea1+tarea2)/2;
calPor=prom*0.05;
System.out.println("Porcentaje Tarea: "+calPor+" promedio: "+prom);
return calPor;
}
}

6. Contesta las preguntas con respecto al programa anterior


a. ¿Qué diferencia existe entre el programa del punto 1 y el programa del punto 4?
b. ¿Poniendo los mismos valores al ejecutar el programa varia en algo el resultado?

Fecha de Actualización 26/08/2010 Página 13


c. ¿Cuáles son los métodos encontrados en el programa y que funcionalidad realiza
cada uno de ellos?
d. Identifica en la siguiente tabla cada uno de los métodos, su tipo, su nombre, la lista
de parámetros y la función que realiza cada uno de ellos

Tipo del Nombre Lista de parámetros Función que realiza


Método

5. RESULTADOS
El alumno habrá identificado la forma en la que el uso de los métodos son aplicados en
programas orientados a objetos.
6. CONCLUSIONES

Escribe al menos tres conclusiones del uso de los métodos aprendido en la presente práctica

Fecha de Actualización 26/08/2010 Página 14


7.-BIBLIOGRAFÍA
1) Java con Programación Orientada a Objetos. Editoria ITEMEX
2) Lenguaje de programación Java. Sun Microsystems, Inc. (2008). SL-275-SE6
3) Conceptos de la programación orientada a objetos. Alfonseca, M. Alcalá, A.

Fecha de Actualización 26/08/2010 Página 15


SUBTEMA: Introducción a la
Práctica 3 Programación Orientada a Objetos

Uso de Método en solución de problemas


Observaciones: Esta práctica se basa en el conocimiento
adquirido en a práctica # 2, por lo cual puedes tomarla como
base para poder desarrollar la presente

1.- OBJETIVO
Realizar la solución de un problema mediante el uso de métodos

2.- MARCO TEÓRICO


Toma como base, la fundamentación teórica establecida en práctica #2, y analiza el problema
presentado, obteniendo como resultado el programa con uso de métodos en el desarrollo de su
solución

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

4.- COMPETENCIAS ESPECÍFICAS

Fecha de Actualización 26/08/2010 Página 16


1. Realizar el análisis del problema en equipos de 2 alumnos, el análisis debe contener una
breve descripción de la forma en la que abordaras el problema, los métodos que
necesitaras para resolverlo, la lista de parámetros necesarios para cada método detectado.
2. Después de haber realizado el análisis, en parejas, deberás hacer el programa
implementando la solución encontrada en el análisis del paso anterior.
3. En un archivo en Word, debes añadir el programa y capturas las pantallas de resultados.

Problemática a resolver

Crea un aplicación que nos convierta una cantidad de euros introducida por teclado a otra moneda, estas
pueden ser a dólares, yenes o libras. El cambio de divisas son:

 0.86 libras es un 1 €
 1.28611 $ es un 1 €
 129.852 yenes es un 1 €

5. RESULTADOS
El alumno implementa un programa utilizando métodos

6. CONCLUSIONES

El alumno realiza una solución de un problema con el uso adecuado de métodos

7.-BIBLIOGRAFÍA
Java con Programación Orientada a Objetos. Editoria ITEMEX
Lenguaje de programación Java. Sun Microsystems, Inc. (2008). SL-275-SE6
Conceptos de la programación orientada a objetos. Alfonseca, M. Alcalá, A.

Fecha de Actualización 26/08/2010 Página 17


Fecha de Actualización 26/08/2010 Página 18
Unidad 2.
Elementos básicos de la interfaz
gráfica de usuario

2.1. Introducción al entorno de desarrollo

2.2. Ventanas

2.3. Etiquetas

2.4. Botones

2.5. Introducción de texto

2.6. Listas desplegables

2.7. Barras de desplazamiento

Fecha de Actualización 26/08/2010 Página 19


SUBTEMA: Ventanas
Práctica 4 Creac
ión
de
venta
nas e
identi
ficaci
ón de
sus
propi
edad
es

1.- OBJETIVO
Crear ventanas de entorno gráfico como base para el desarrollo de formularios para
soluciones de aplicaciones.

2.- MARCO TEORICO

Fecha de Actualización 26/08/2010 Página 20


En las interfaces gráficas de usuario, existen varios elementos que las conforman, un componente
principal son las ventanas, que son los contenedores principales que contienen cada uno de los
elementos que representan la interacción con un usuario, a continuación se explicara las librerías
necesarias para su creación y ejemplo de cómo se utilizan.

3.- MATERIAL, EQUIPO O REACTIVO

En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

4.- PROCEDIMIENTO
1. Copia en el editor JCreator el siguiente código
/*Uso y manejo de Ventanas con Java
*Progamación Visual Ene - Jun 2015
*Elaboró: Lic. Guadalupe Flores Díaz
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class UsoVentanas


{
public UsoVentanas()
{

Fecha de Actualización 26/08/2010 Página 21


JFrame ventana = new JFrame("Mi primera Ventana");
JLabel etiqueta = new JLabel("Hola Mundo");
ventana.getContentPane().add(etiqueta);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.pack();
ventana.setVisible(true);
ventana.setLocation(300,300);
}

public static void main(String args [])


{
UsoVentanas MiAplicacion = new UsoVentanas();
}
}

2. Compila y verifica que no existan errores sintácticos, si esto es así, ejecuta el programa.
a. ¿Qué resultado aparece?
3. Analicemos una a una de las instrucciones que permiten que aparezca la ventna resultante,
describe la función que realiza cada una de ellas
4. JFrame ventana = new JFrame("Mi primera Ventana");
____________________________________________________________________________________
_
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
_____
5. JLabel etiqueta = new JLabel("Hola Mundo"); Cambia Hola mundo por “Hola y tu nombre” ¿Qué
sucede?
____________________________________________________________________________________
____________________________________________________________________________________
___

Fecha de Actualización 26/08/2010 Página 22


6. ventana.getContentPane().add(etiqueta); Quita la instrucción poniendo en comentarios, vuelve a
ejecutar el programa ¡Que sucede al hacer esto?,
____________________________________________________________________________________
____________________________________________________________________________________
___ ¿para que crees que sirve esta instrucción?
____________________________________________________________________________________
____________________________________________________________________________________
____
7. ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Esta instrucción, nos sirve para que al cerrar la ventana con el icono de salir de la ventana, se
pueda liberar la memoria ocupada y finalizar correctamente la aplicación
8. ventana.pack(); Ajusta la ventana al contenido de la misma
9. ventana.setVisible(true); Al inicializar la aplicación la hace visible para el usuario
10. ventana.setLocation(300,300); Cambia los valores establecidos en esta instrucción y anota lo que
sucede al volver a ejecutaar el programa
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____

5.- RESULTADOS
El alumno identifica la forma en la que se puede crear un contenedor para los componentes
gráficos

6.- CONCLUSIONES
Escribe las dudas que hayas tenido en la creación de un contenedor grafico

Fecha de Actualización 26/08/2010 Página 23


7.- BIBLIOGRAFÍA
a) Java 7. Francisco Javier Moldes Teo
b) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
c) Java 2. Curso Práctico. Antonio J. Martin sierra
d) Como programar con Java. Deitel

SUBTEMA: Etiquetas
Práctica 5
Creación y uso de Etiquetas
Nota: Utilizarás el código de la práctica #4, al de creación de ventanas

1.- OBJETIVO
Crear etiquetas dentro de los contenedores, modificando los atributos
principales de cada una de éstas

2.- MARCO TEORICO

Las etiquetas en programación de interfaces gráficas de usuario son elementos importantes, ya que
muestran al usuario final información acerca del problema a solucionar, el texto de las etiquetas no
puede ser seleccionado por el usuario, sin embargo existen instrucciones específicas que permiten el
acomodo y personalización de cada una de ellas. En el ejemplo del apartado 2.2, se creó y añadió a la

Fecha de Actualización 26/08/2010 Página 24


ventana una etiqueta que dice “Hola Mundo”, analicemos las instrucciones que son necesarias para tal
efecto.

 JLabel etiqueta = new JLabel("Hola Mundo"); Esta es la instrucción que nos permite crear el
texto que queremos que aparezca en nuestra ventana gráfica. El texto que se encuentra entre
comillas es el texto que tu quieres que aparezca, éste lo puedes cambiar de acuerdo a las
necesidades del problema que estas solucionando. Etiqueta representa el nombre que le darás al
componente, es importante mencionar que pongas un nombre relacionado con el texto, ya que de
lo contrario al añadirlas a la interfaz correspondiente puedes equivocarte y ocasionar algunos
problemas en tu programa.
 ventana.getContentPane().add(etiqueta); Con esta instrucción podemos añadir a nuestra
ventana la etiqueta(s) creada(s), por cada etiqueta que añadas, deberás poner esta instrucción, ya
que de lo contrario no aparecerán en automático.

Las etiquetas, al igual que en las ventanas tienen asociadas a ellas ciertas instrucciones que te permitirán entre
otras cosas el acomodo de las mimas en la posición correcta, resaltarlas, ponerles imágenes entre otras,
veamos a continuación los métodos más utilizados en las etiquetas.

Las instrucciones antes descritas, al igual que en las de la ventana, debes anteponer el nombre de la
etiqueta, un punto y la instrucción que quieras aplicar. Para Aprender un poco más de acerca del uso y
manejo de las etiquetas, incluya en el programa anterior las siguientes instrucciones una a una, a anote
los comentarios acerca de que es lo que pasa en cada una de ellas:

Fecha de Actualización 26/08/2010 Página 25


3.- MATERIAL, EQUIPO O REACTIVO

a) 1 Computadora
b) JDK instalado 1.6 o superior
c) JCreator instalado

4. PROCEDIMIENTO
1. Considerando el código de la práctica anterior, añade la instrucción ventana.setlLayout(null); justo
debajo de la línea que dice JFrame ventana = new JFrame("Mi primera Ventana"); añade una a una
las siguientes instrucciones, compila el programa y anota la función que realiza cada una de ellas. Para
poder observar el efecto que tienen las instrucciones de la tabla siguiente es necesario que después
crear tu ventana, introduzcas la siguiente instrucción, esto solo lo tienes que realizar una sola vez.

Instrucción(es) Función que realiza


etiqueta.setText(“Aprendiendo el uso de
etiquetas”);
etiqueta.setOpaque(true);
etiqueta.setBackground(new

Fecha de Actualización 26/08/2010 Página 26


Color(100,200,1));

etiqueta.setForeground(Color.BLUE);

etiqueta.setBounds(40,100,250,30);
etiqueta.setBounds(100,40,250,30);
etiqueta.setBounds(40,100,30,250);

2. Después de haber analizado el comportamiento de cada una de las instrucciones dela tabla anterior,
realiza el siguiente ejercicio.

Realiza una ventana que contenga seis etiquetas, las cuales deberán decir lo siguiente:

a) “Esto es un ejemplo de uso de Etiquetas”


b) “Las etiquetas son importantes para brindar información”
c) “Se pueden acomodar de diferentes maneras”
d) “Se les puede cambiar el color de fondo”
e) “y también el color de la letra”
f) “Para mejor la interfaz del usuario”

Colocar las etiquetas en posiciones diferentes, y colores también distintos tanto de fondo como de letra,
recuerda el contraste que debe existir para que éstas sean claras a la vista del usuario, no deberán estar
amontonados.

5.- RESULTADOS

Contesta las siguientes preguntas, considerando como base el ejercicio realizado

a) ¿Cuantas etiquetas necesitas para la solución del ejercicio?

Fecha de Actualización 26/08/2010 Página 27


b) ¿Cuál es la forma de declaración de cada uno de estos ejercicios?
c) ¿Por qué no puedes hacerlo sobre una misma etiqueta?
d) ¿Cuál es la instrucción de acomodo de cada una de ellas?
e) ¿Cuál es la funcionabilidad que le puedes dar a las etiqutas?

6.- CONCLUSIONES.

Anota las conclusiones a las cuales llegaste con el uso de las etiquetas,

7.- BIBLIOGRAFÍA
a) Java 7. Francisco Javier Moldes Teo
b) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
c) Java 2. Curso Práctico. Antonio J. Martin sierra
d) Como programar con Java. Deitel

Fecha de Actualización 26/08/2010 Página 28


SUBTEMA: BOTONES
Práctica 6
Creación, uso y manipulación de botones.

1.- OBJETIVO
Implementar Botones, que permitan realizar acciones dentro de un formulario creado.

2.- MARCO TEÓRICO

Los botones dentro de las interfaces gráficas son elementos sumamente importantes, ya que con ellos se le
puede dar funcionalidad a los elementos que la integran, general mente con los botones, el usuario puede dar
una orden de acción a la interfaz en cuestión, al igual que las etiquetas, los botones tienen que ser creados y
añadidos a la interfaz, y podrás crear todos los que necesites, veamos cómo se pueden crear y manipular los
botones.

En lugar de la instrucción JLabel, deberás poner la instrucción JButton y en lugar del nombre etiqueta, pon el
nombre botón(Esto es recomendado para que cuando hagas uso de un elemento sepas exactamente a cual
nombre referenciar). Veamos que sucede y como quedaría tu programa.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

Fecha de Actualización 26/08/2010 Página 29


 Editor de programas en Java JCreator
 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

4.- PROCEDIMIENTO.

1. Copia el siguiente código en el editor de Java

/*Uso y manejo de Ventanas con Java


*Programación Visual Ene - Jun 2015
*
*Elaboró: Lic. Guadalupe Flores Díaz
*
*/

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class UsoVentanas


{
public UsoVentanas()
{
JFrame ventana = new JFrame("Mi primera Ventana");

JButton boton = new JButton(“Mi Primer Boton”);

ventana.setLayout(null);
ventana.getContentPane().add(boton);

ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setVisible(true);
ventana.setSize(450,450);
}

Fecha de Actualización 26/08/2010 Página 30


public static void main(String args [])
{
UsoVentanas MiAplicacón = new UsoVentanas();
}
}

2. De igual manera que en las etiquetas, realicemos las pruebas correspondientes a cada una de las
funciones antes descritas, pero ahora con el botón, para poder visualizar las acciones básicas que se
pueden realizar con ellos en cuanto a apariencia se refiere
Instrucción(es) Función que realiza
boton.setText(“Aprendiendo el uso de etiquetas”);
boton.setOpaque(true);
boton.setBackground(new Color(100,200,1));
boton.setForeground(Color.BLUE);
boton.setBounds(40,100,250,30);
boton.setBounds(100,40,250,30);
boton.setBounds(40,100,30,250);

3. Compila y ejecuta el programa, al presionar el botón creado, realiza alguna acción?


__________ ¿Por qué crees que sucede lo anterior?
______________________________________________________________________________
______________________________________________________________
6.- RESULTADOS
El alumno sabe cómo crear botones, localizarlos en la pantalla y cambiar algunas de sus
características

Fecha de Actualización 26/08/2010 Página 31


6.- CONCLUSIONES

El alumno aprende a crear botones , y cambiar sus características básicas.

7.- BIBLIOGRAFÍA

a) Java 7. Francisco Javier Moldes Teo


b) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
c) Java 2. Curso Práctico. Antonio J. Martin sierra
d) Como programar con Java. Deitel

Fecha de Actualización 26/08/2010 Página 32


SUBTEMA: BOTONES: Implementando
Práctica 7 acciones

Implementación de acciones a los botones del


formulario

1.- OBJETIVO
Implementar comandos de acción a los botones en interfaces gráficas.

2.- MARCO TEÓRICO


La gran importancia de los botones es que la funcionalidad que se le puede añadir a cada uno de estos
componentes, de tal manera que cuando el usuario presione un clic sobre el botón, se realice una serie de
instrucciones que den solución a la problemática a resolver.

Para poder asignar estas instrucciones a un botón determinado, se debe realizar lo siguiente:

1) Añadir a donde dice public class la instrucción implements ActionListener, la cual permite añadir
funcionalidad a los botones y otros elementos que contenga la ventana. De tal manera que debe
quedar la instrucción completa de la siguiente manera.

public class UsoVentanas implements ActionListener


{
….
}

2) Después de haber creado el botón, es necesario indicarle la acción que debe realizar, existen varias
formas de llevar a cabo esta indicación para efectos de facilidad, utilizaremos la siguiente intruccion:

Fecha de Actualización 26/08/2010 Página 33


boton.addActionListener(this);
Se pude poner una vez creado el objeto o en cualquier parte del programa después de que el botón
haya sido creado

3) Finalmente debes añadir en un método especial las funciones que el botón debe realizar, lo cual se
hace con el siguiente grupo de instrucciones:

public void actionPerformed(ActionEvent e) //Se crea el método especial para implementar acciones
{
if(e.getSource()==boton) //Se compara si el evento sucedió en el botón se usa el nombre del mismo
{
// En esta sección se ponen todas las instrucciones que se van a realizar al presionar el botón
//Para no hacer un programa tan largo, puedes considerar la opción de crear métodos para
//cada uno de los botones que implementes, y solo pondrías el llamado al método
//correspondiente
JOptionPane.showMessageDialog(null, "Escogiste Guiño");
}
}

El grupo de instrucciones antes descritas, se puden colocar despues del metodo llamado :

public static void main(String ars[ ]), o bien después de haber cerrado la llave del constructor. Veamos el
ejemplo completo de cómo quedaría la implementación y uso de botones. Las partes señaladas en letra negrita
son las complementarias necesarias para el funcionamiento de los botones.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

Fecha de Actualización 26/08/2010 Página 34


4.- PROCEDIMIENTO
1. Copia el siguiente código en un archivo nuevo

/*Uso y manejo de Ventanas con Java


*Progamación Visual Ene - Jun 2015
*Elaboró: Lic. Guadalupe Flores Díaz
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class UsoVentanas implements ActionListener
{
JFrame ventana;
JButton boton;
public UsoVentanas() // Constructor
{
ventana = new JFrame("Mi primera Ventana");
boton = new JButton("Boton 1");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setLayout(null);
boton.addActionListener(this);
ventana.getContentPane().add(boton);
Image icono = Toolkit.getDefaultToolkit().getImage("Jeremias29.jpg");
ventana.setIconImage(icono);
ventana.setResizable(false);
ventana.setVisible(true);
ventana.setSize(450,450);
}
public void actionPerformed(ActionEvent e) //sobreescribimos el metodo del listener
{
if(e.getSource()==boton)//podemos comparar por el nombre del objeto del boton
{
JOptionPane.showMessageDialog(null,"Has presionado el Boton");
}
}
// ****** Implementacion de clase principal, que se encarga de ejecutar el programa

Fecha de Actualización 26/08/2010 Página 35


public static void main(String args [])
{
UsoVentanas MiAplicacón = new UsoVentanas();
}
}

2. Compila y ejecuta el programa. ¿Que cambios observas?

3. Realiza el siguiente ejercicio.

Ejercicio uso y manipulación de botones con implementación de acciones

Desarrollar un interfaz que contenga 3 botones, etiquetados como “1”, “2” y “3”, al presionar el botón 1,
el título de la ventana se deberá cambiar a “Titulo Cambiado por Botón 1”, al presionar el botón 2
cambiar el texto del Boton 2 y deberá decir “Acivado 2”, al presionar el botón 3 deberá crear visualizar u
ocultar una etiqueta que diga “Estas usando el botón 3”, si al presionar el botón 3 la etiqueta es visible, el
texto del botón debe decir Ocultar, si no es visible deberá decir Mostrar. (Por default considere al inicio la
etiqueta oculta) Aplique cambio de color del texto del botón en cada acción. Los botones deberán estar
acomodados, con un color de letra diferente cada uno de ellos.

5. RESULTADOS
Captura la ventana con botones creada como prueba de realización de la misma.

6.- CONCLUSIONES

Fecha de Actualización 26/08/2010 Página 36


Escribe al menos tres comentarios acerca de la creación, uso y asignación de tareas a los botones dentro de
las ventanas programadas.

7.- BIBLIOGRAFÍA

a) Java 7. Francisco Javier Moldes Teo


b) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
c) Java 2. Curso Práctico. Antonio J. Martin sierra
d) Como programar con Java. Deitel

Fecha de Actualización 26/08/2010 Página 37


SUBTEMA: Cuadros de Texto
Práctica 8

Implementación de cuadros de texto en los formularios

1.- OBJETIVO.
Crear y utilizar cuadros de texto para entrada de datos por parte del usuario

2.- MARCO TEÓRICO

Un cuadro de texto es el área destinada en una interfaz gráfica donde el usuario puede introducir información, y
de esta manera poder interactuar con la computadora, al igual que los elementos que hemos estado analizando
anteriormente como son las ventanas, etiquetas y botones, los cuadros de texto se deben declarar, crear y
añadir a la ventana, así como también se le pueden cambiar propiedades como el color del fondo, de la letra, y
la posición donde estará ubicada. Considerando las características que debe tener una buena interfaz gráfica
de usuario. A continuación analizaremos como se puede construir un cuadro de texto, modificar y las diferentes
formas en las que se puede utilizar.

Para crear e inicializar una etiqueta, se utiliza la instrucción JLabel, para un botón el comando JButton y en este
caso para la creación de los cuadros de texto deberás utilizar la instrucción JTextField, de igual manera que en
los componentes anteriores, es necesario que le pongas un nombre adecuado a cada cuadro de texto, esto con
la finalidad de no confundirte cuando los estés utilizando.

Fecha de Actualización 26/08/2010 Página 38


Una característica importante que debes conocer de los cuadros de texto, es que todo lo que en ellos se
introduzca es en forma de texto, es decir en forma de cadena, de esta manera si introduces un valor numérico,
antes de poderlo utilizar como tal debes convertirlo, ya sea en valor entero (Integer.parseInt) o en valor double
(Double.parseDouble) o flotante. Veamos un ejemplo y analicemos cada una de sus partes.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

4.- PROCEDIMIENTO
1. Tomando coma base el programa de la práctica anterior, guárdalo como ProgCuadroTexto y modifícalo de
tal forma que quede como el siguiente código. (Recuerda cambiar el nombre de la clase por el nombre del
archivo:

/*Uso y manejo de Cuadros de Texto con Java


*Programación Visual Ene - Jun 2015
*Elaboró: Lic. Guadalupe Flores Díaz
*/

import javax.swing.*;

Fecha de Actualización 26/08/2010 Página 39


import java.awt.*;
import java.awt.event.*;

public class CuadrosTexto implements ActionListener


{
JFrame ventana;
JButton bUno,bDos,bTres;
JLabel etiqueta;
JTextField txtTexto;
boolean visible;

public CuadrosTexto()
{
ventana = new JFrame("Uso de Cuadros de Texto");
bUno = new JButton("Verificar");
etiqueta = new JLabel("Introduza un Dato");
txtTexto = new JTextField();
visible = false;

ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setLayout(null);
bUno.setOpaque(true);
bUno.setForeground(Color.BLUE);
bUno.setBounds(40,170,250,30);

bUno.addActionListener(this);

etiqueta.setBounds(40,40,120,30);
etiqueta.setOpaque(true);
etiqueta.setBackground(Color.YELLOW);
etiqueta.setForeground(Color.GREEN);

txtTexto.setBounds(180,40,100,30);

ventana.getContentPane().add(etiqueta);
ventana.getContentPane().add(txtTexto);
ventana.getContentPane().add(bUno);

ventana.setIconImage(icono);

Fecha de Actualización 26/08/2010 Página 40


ventana.setResizable(false);
ventana.setVisible(true);
ventana.setSize(450,450);
}

public void actionPerformed(ActionEvent e) //sobreescribimos el metodo del listener


{
if(e.getSource()==bUno)//podemos comparar por el nombre del objeto del boton
{
etiqueta.setText("Ha introducido: "+txtTexto.getText());
}
}

// ************** Implementación de clase principal, que se encarga de ejecutar el programa


public static void main(String args [])
{
CuadrosTexto MiAplicacón = new CuadrosTexto();
}
// ********** Implementación de acciones a realizar por elementos gráficos

2. Identifica que función realiza cada una de las siguientes líneas de comando, y escribe dicha funcionalidad
en las lineas
a) JTextfield txtTexto;
_____________________________________________________________________________________
_____________________________________________
b) txtTexto = new JTextField();
_________________________________________________________________
c) txtTexto.setBounds(180,40,100,30);
_________________________________________________________________
d) Vent ana.getContentPane().add(txtTexto);
_________________________________________________________________

Fecha de Actualización 26/08/2010 Página 41


e) txtTexto.getText()); _________________________________________________________________
________________________________________________________________
3. Al igual que los botones, etiquetas, el cuadro de texto se puede utilizar instrucciones especiales que
mejoran su apariencia, los más utilizados son los siguientes: (Realice estas acciones en su programa
muestra , compile y ejecute su programa, anote que hace cada una de las instrucciones) Realice una por
una.
Instrucción(es) Función que realiza
txtTexto.setText(“Aprendiendo el uso de Cuadros ”);
txtTexto.setBackground(new Color(100,200,1));

txtTexto.setForeground(Color.BLUE);
txtTexto.setBounds(40,100,250,30);
txtTexto.setBounds(100,40,250,30);
txtTexto.setBounds(40,100,30,250);
txtTexto.setEnabled(false);
txtTexto.setEnabled(true);
etiqueta.setTextext(txtTexto.getText());

4. Ejercicio de creación, uso y manipulación de Cuadros de Texto.


Crear una ventana que contenga dos etiquetas, dos cuadros de texto y un botón, y realice lo siguiente:
Una etiqueta deberá decir en su contenido Usuario y la otra Contraseña. En una cuadro de texto servirá
para introducir el nombre y el otro para introducir la contraseña. El nombre del usuario será el nombre
del alumno y la contraseña “Secreto” Al presionar el botón, si es correcto deberá poner la etiqueta,
cuadro de texto en color verde, pero si no es correcto en color rojo.

5. RESULTADOS
Captura la ventana del ejercicio creado para verificar el uso adecuado de los cuadros de texto

Fecha de Actualización 26/08/2010 Página 42


6.- CONCLUSIONES

Escribe al menos tres comentarios acerca de la creación, uso y asignación de tareas a los botones dentro de
las ventanas programadas.

7.- BIBLIOGRAFÍA

e) Java 7. Francisco Javier Moldes Teo


f) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
g) Java 2. Curso Práctico. Antonio J. Martin sierra
h) Como programar con Java. Deitel

Fecha de Actualización 26/08/2010 Página 43


SUBTEMA: Listas Desplegables
Práctica 9
Implementación de listas desplegables en los formularios
1.- OBJETIVO.
Creará y utilizara las listas desplegables en un entorno gráfico

2.- MARCO TEÓRICO

Las listas desplegables permiten al usuario seleccionar de una lista de opciones, previamente establecidos,
este componente al igual que el anterior debe ser creado, inicializado con los valores que contiene la lista, y
posteriormente manipulado para que se pueda utilizar el valor seleccionado por el usuario. Los valores iniciales
pueden estar previamente definidos, en caso de ser necesario pueden ser también añadidos por el usuario,
para lo cual se requiere del uso de almacenamiento de datos, lo cual se analizará en la unidad tres. Analicemos
las instrucciones que son necesarias para el uso y manejo de este componente gráfico.

Analicemos el código del siguiente ejemplo:


/*Uso y manejo de Ventanas con Java
*Progamación Visual Ene - Jun 2014
*Elaboró: Lic. Guadalupe Flores Díaz
*/

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class UsoVentanas implements ActionListener


{

Fecha de Actualización 26/08/2010 Página 44


JFrame ventana;
JButton boton;
JComboBox lista;
JTextField cuadroTxt;

public UsoVentanas()
{
ventana = new JFrame("Mi primera Ventana");
boton = new JButton("Boton 1");
lista = new JComboBox();
cuadroTxt= new JTextField();

cuadroTxt.setBounds(200,150,100,50);
lista.setBounds(50,150,100,50);

lista.addItem("Valor 1 Lista");
lista.addItem("Valor 2 Lista");
lista.addItem("Valor 3 Lista");
lista.addItem("Valor 4 Lista");
lista.addItem("Valor 5 Lista");

lista.addActionListener(this);

ventana.getContentPane().add(cuadroTxt);
ventana.getContentPane().add(lista);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setLayout(null);

boton.setText("Aprendidendo acerca de Botones");


boton.setOpaque(true);
boton.setBackground(new Color(200,150,2));
boton.setForeground(Color.BLUE);
boton.setBounds(40,100,250,30);

boton.addActionListener(this);

ventana.getContentPane().add(boton);

Image icono = Toolkit.getDefaultToolkit().getImage("Jeremias29.jpg");

Fecha de Actualización 26/08/2010 Página 45


ventana.setIconImage(icono);
ventana.setResizable(false);
ventana.setVisible(true);
ventana.setSize(450,450);

}
public void actionPerformed(ActionEvent e) //sobreescribimos el metodo del listener
{
if(e.getSource()==boton)//podemos comparar por el nombre del objeto del boton
{
JOptionPane.showMessageDialog(null,"Has presionado el Boton");
}
if(e.getSource()==lista)//podemos comparar por el nombre del objeto del boton
{
cuadroTxt.setText(lista.getSelectedItem().toString());
}
}
// ************** Implementacion de clase principal, que se encarga de ejecutar el programa
public static void main(String args [])
{
UsoVentanas MiAplicacón = new UsoVentanas();
}
}

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados

4.- PROCEDIMIENTO

Fecha de Actualización 26/08/2010 Página 46


Identifica en el código anterior, cada uno de las siguientes instrucciones y escribe en la línea la acción que
realizan dentro del programa

a) JComboBox lista; ______________________________________________


b) lista = new JComboBox(); _____________________________________
c) lista.setBounds(50,150,100,50); ____________________________________
d) lista.addItem("Valor 1 Lista"); ____________________________________
e) lista.addActionListener(this); Al igual que en los botones, es indispensable añadir un escuchador, ya
que éste permitirá utilizar el valor que seleccione el usuario, ya sea para almacenarlo, compararlo o
realizar una acción específica con dicho valor
f) ventana.getContentPane().add(lista); Todos los componentes que has declarado, es necesario
añadirlos a la ventana para que cuando la ejecutes puedan ser visible al usuario, y puedan realizar la
acción para la cual fueron programados. No es la excepción de las listas desplegables, como puedes
observar es la misma instrucción que utilizas en los demás componentes solo debes poner el nombre del
componente a arreglar.
g) lista.getSelectedItem().toString()); Esta instrucción te permitirá utilizar el elemento que ha sido
seleccionado, el cual podrás comparar o hacer cualquier operación requerida para el funcionamiento del
mismo.

Las instrucciones anteriores son las básicas que deben utilizarse, a continuación analizaremos algunas
otras que existen en torno a este componente.

3. basado en el programa del ejemplo, añade una a una las siguientes instrucciones, compila y ejecuta el
programa, anota en el recuadro que es lo que hace cada una de ellas.
Instrucción Descripción
lista.setEnabled(false);
lista.setEnabled(true);
cuadroTxt.setText(“El elemento 3 es:

Fecha de Actualización 26/08/2010 Página 47


”+lista.getItemAt(3).toString());
cuadroTXT.setText(“La lista tiene
”+lista.getItemCount()+” valores”);
lista.setBackground(Color.GREEN);
lista.setForeground(Color.YELLOW);
lista.setVisible(false);
lista.setVisible(true);

4. Ejercicio de creación, uso y manipulación de Listas Desplegables

Crear una ventana con dos listas desplegables, y dos cuadros de texto, la primera lista desplegable
contendrá los nombres de 10 estados de la República, la segunda lista desplegable contendrá 10
nombres de carreras universitarias. Cada vez que se seleccione un elemento de cada lista, en el primer
cuadro de texto se deberá indicar el nombre de la lista de la cual se ha seleccionado un elemento y en el
segundo el número de elemento que ha seleccionado, así mismo cuando seleccione un estado, los
cuadros de texto deben ser en color de fondo rojo con color de letra blanco, y cuando se seleccione una
carrera universitaria, los cuadros debe cambiar a fondo negro con letras amarillas. Recuerda poner las
etiquetas que consideres necesarias. Así como también acomódalos de una manera visualmente
ordenado.

5. RESULTADOS

Captura las pantallas que evidencien la actividad desarrollada

6.- CONCLUSIONES

Escribe al menos tres conclusiones del uso de las listas desplegables

Fecha de Actualización 26/08/2010 Página 48


7.- BIBLIOGRAFÍA
i) Java 7. Francisco Javier Moldes Teo
j) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
k) Java 2. Curso Práctico. Antonio J. Martin sierra
Como programar con Java. Deitel

Unidad 3.
Elementos avanzados de la interfaz gráfica
de usuario

3.1. Barras de progreso

3.2. Organización y visualización de datos

3.3. Cuadros de dialogo

3.4. Asistentes para el desarrollo de interfaces

3.5. Conectividad a Bases de datos

Fecha de Actualización 26/08/2010 Página 49


SUBTEMA: Conexión a una Base de Datos
Práctica 10
Conexión a una Base de Datos
1.- OBJETIVO.
Establecerá una conexión con el manejador de Base de Datos

2.- MARCO TEÓRICO

Las clases del API JDBC se encuentran en el paquete java.sql. Este paquete contiene clases para cargar los drivers,
realizar conexiones a bases de datos, consultar datos y manejar un conjunto de registros. También incluye el manejo
de excepciones que se produzcan en el acceso a bases de datos.

Cuando la clase Driver es cargada en la aplicación de Java, ésta debe crear una instancia y registrarse en el

Fecha de Actualización 26/08/2010 Página 50


DriverManager. Para cargar y registrar un driver desde el código se utiliza el siguiente código:

Class.forName("URL del Driver") ;

El lenguaje estructurado de consultas SQL es utilizado para acceder a la información contenida en la base de datos.

Conexión a la base de datos

El método getConnection, de la clase DriverManager intenta localizar un driver apropiado que fueron
cargados en el proceso de inicialización y aquellos cargados explícitamente en el código.

La sintaxis para aplicar la instrucción de conectividad es la siguiente [2]:

DriverManager.getConnection(String URL, String usuario, String password)

Ejemplo:

public void connectToAndQueryDatabase(String username, String password) {


// cargar el driver
Connection con = DriverManager.getConnection(
"jdbc:myDriver:myDatabase",username, password);
// Crear una instancia para conexión con la base de datos
Statement stmt = con.createStatement();
// Ejecutar una consulta
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
}

Fecha de Actualización 26/08/2010 Página 51


Este método intenta establecer la conexión a la URL (dirección) indicada, y devuelve un objeto
Connection como resultado.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados
 MySql instalado
 Acceso como Administrador a tu computadora

Fecha de Actualización 26/08/2010 Página 52


4.- PROCEDIMIENTO

a) Cargar el driver JDBC

Para conectarse a una base de datos a través de JDBC desde una aplicación Java, lo primero que
se requiere es cargar el driver que será el 'puente' para interactuar entre la aplicación y la base de
datos.

La sintaxis para cargar el driver es:

Class.forName("Clase del driver").newInstace();

Por ejemplo, si el driver que se emplea es el puente JDBC-ODBC, entonces el código para
cargarlo sería:

Class.forName("com.mysql.jdbc.Driver").newInstance();

El código para cargar el driver podría lanzar una excepción de tipo ClassNotFoundException que
debe ser capturada.

b) Conectarse a una Base de Datos

Para conectarse a una fuente de datos específica, una vez que se ha cargado el driver, se utiliza
una dirección (URL), que indicará la base de datos con la sintaxis:

Connection con = DriverManager.getConnection(URL, usuario, password)

c) Aplicación de Querys (Consultar) para inserción, eliminación, actualización y consulta en la Base de


Datos y ejemplo de implementación de métodos proporcionados por java.sql para el Sistema
Gestor de Base de datos Mysql

Fecha de Actualización 26/08/2010 Página 53


A continuación se irá desarrollando un ejemplo, incluyendo funcionalidades para acceder a la base
de datos automoviles.

Para ello se utilizan dos archivos:


accesodatos
pruebaaccesodatos

 La conexión a la base de datos y la consulta de la misma se desarrollará en una clase java


llamada accesodatos.

e) Copia el código que a continuación se te muestra, ejecútalo y observa los resultados generados para cada uno de los
métodos

Código de prueba de accesodatos:

import java.sql.*;

public class accesodatos {

// INSTANCIACIÓN DE VARIABLES DE CONEXIÓN


Connection con;
Statement st;
ResultSet rs;

// ABRIR CONEXION

public void abrirConexion() {


try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost/automoviles", "lupita","lupita");
System.out.println("Conexion a la BD");
}
catch (Exception e) {

Fecha de Actualización 26/08/2010 Página 54


System.out.println("Error en conexion ");
}
}

//CERRAR LA CONEXION
public void cerrarconexion() {
try {
con.close();
System.out.println("Conexion cerrada");
}
catch (SQLException e) {
System.out.println("Error al cerrar conexion");
}
}

//ACCESO A TABLA DE BASE DE DATOS

public void obtenerDatosTabla() {


try {
st = con.createStatement();
rs = st.executeQuery("SELECT * FROM coches ORDER BY precio DESC");
System.out.println("Tabla abierta");
}
catch (SQLException e) {
System.out.println("Error al Abrir tabla ");
}
}

//MOSTRAR DATOS

public void mostrarDatosCoches() {


try {
while (rs.next()) {
String strMat = rs.getString("Matricula");
String strMarca = rs.getString("Marca");
int intPrecio = rs.getInt("Precio");
System.out.println(strMat + ", " + strMarca + ", " +
intPrecio);

Fecha de Actualización 26/08/2010 Página 55


}
}
catch (Exception e) {
System.out.println("Error al visualizar datos");
}
}

//MODIFICAR DATOS

public void modificar(String m, int p) {


try {
Statement s2 = con.createStatement();
s2.executeUpdate("UPDATE coches set Precio="+ p + " where Matricula like '" + m + "%'");
System.out.println("Elemento modificado correctamente");
}
catch (SQLException e) {
System.out.println("Error al modificar");
}
} //ELIMINAR DATOS
public void borrar(String m) {
try {
Statement s2 = con.createStatement();
s2.executeUpdate("DELETE FROM coches where Matricula like '"+m+"%'");
System.out.println("Elemento Borrado");
}
catch(SQLException e) {
System.out.println("Error al Borrar");
}
}

//INSERTAR DATOS
public void insertar(String m, String mar, int p, String d) {
try {
PreparedStatement ps = con.prepareStatement("insert into coches values (?,?,?) "); ps.setString(1, m);
ps.setString(2, mar);
ps.setInt(3, p);
ps.setString(1, d);
System.out.println("Elemento insertado");

Fecha de Actualización 26/08/2010 Página 56


}
catch(SQLException e) {
System.out.println("Error al insertar ");
}
}

//Método para insertar un registro en la tabla propietarios. Los


//argumentos del método son el id, nombre y edad.
public void insertar(String dni, String n, int ed) {
try {
PreparedStatement ps = con.prepareStatement("insert into propietarios values (?,?,?) ");
ps.setString(1, id);
ps.setString(2, n);
ps.setInt(3, ed);
//En este caso, el método executeUpdate devuelve la cantidad de
//elementos insertados.
if (ps.executeUpdate()!=1){
throw new Exception("Error en la Inserción");
}
System.out.println("Elemento insertado ");
}
catch (Exception e) {
System.out.println("Error al Insertar ");
}
}

//OBTENER DICCIONARIO DE TABLA

public void estructuraTabla(String strTbl) {


try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("Select * from " + strTbl);
//Obtiene el metadata del ResultSet
ResultSetMetaData rsmeta = rs.getMetaData();
//Obtiene la cantidad de columnas del ResultSet
int col = rsmeta.getColumnCount();
for (int i = 1; i <= col; i++) {
System.out.println("Campo " + rsmeta.getColumnLabel(i) + "\t" + "Tipo: " + rsmeta.getColumnTypeName(i));

Fecha de Actualización 26/08/2010 Página 57


//Devuelve el nombre del campo i
//Devuelve el tipo del campo i + "Tipo: " + rsmeta.getColumnTypeName(i));
}
}
catch (Exception e) {
System.out.println("Error en Metadata ");
}
}

//VISUALIZAR CONTENIDO DE TABLA

public void verCualquierTabla(String strTbl) {


try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("Select * from " + strTbl);
ResultSetMetaData meta = rs.getMetaData();
int col = meta.getColumnCount();
//Mientras haya registros
while (rs.next()) {
for (int i = 1; i <= col; i++) {
//Mostrar el dato del campo i
System.out.print(rs.getString(i) + "\t");
}
System.out.println("");
}
}
catch (Exception e) {
System.out.println("Cualquier " + e.toString());
}
}
}

Las pruebas se realizarán desde otra clase pruebaaccesodatos.

Fecha de Actualización 26/08/2010 Página 58


Código de prueba de pruebaaccesodatos:

import java.io.*;

public class pruebaaccesodatos {

public static void main(String[] args) {


accesodatos bd = new accesodatos();
bd.abrirConexion();
//Tabla Coches
bd.obtenerDatosTabla();
bd.mostrarDatosCoches();
bd.insertar("TT-1111","TTT",7000,"TT");
bd.modificar("MA-1111",8000);
bd.borrar("MA-2222");
bd.obtenerDatosTabla();
bd.mostrarDatosCoches();
//Tabla propietarios
bd.insertar("1D","Guadalupe",36);
bd.verCualquierTabla("propietarios");
bd.estructuraTabla("propietarios");
}
}

5. RESULTADOS

Después de copiar, corregir y ejecutar el código anterior, contesta las siguientes preguntas:

Fecha de Actualización 26/08/2010 Página 59


1. ¿Cuáles son los métodos relacionados con el acceso a los datos?
2. ¿Qué función realiza cada uno de ellos?
3. ¿En caso de no haber podido realizar la conexión a la base de datos. Cual crees que haya sido el motivo?
4. ¿Si tuviste algún problema con la conexión a la base de datos, como fue resuelto?
5. ¿Que aplicación tiene la base de datos en la programacion de interfaces graficas?

6.- CONCLUSIONES

El alumno establece conexión con la base de datos y comprende el acceso a los datos utilizando un
manejador de base de datos.

7.- BIBLIOGRAFÍA

l) Java 7. Francisco Javier Moldes Teo


m) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
n) Java 2. Curso Práctico. Antonio J. Martin sierra
Como programar con Java. Deitel

Fecha de Actualización 26/08/2010 Página 60


Unidad 4.
Desarrollo de Aplicaciones

4.1. Adquisición de datos analógicos y digitales

4.2. Control de actuadores

Fecha de Actualización 26/08/2010 Página 61


SUBTEMA: Desarrollo de Aplicaciones
Práctica 11
Integración de habilidades

1.- OBJETIVO.

Desarrollar una aplicación integrando las competencias del curso

2.- MARCO TEÓRICO

Considerar los elementos gráficos de las interfaces y desarrollar una aplicación que realice lo
especificado en la problemática presentada.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR


En la lista siguiente se describe el hardware, el software necesario para la elaboración de la presente práctica;

 Editor de programas en Java JCreator


 Compilador JDK 1.6 o superior
 1 Computadora con los dos programas instalados
 MySql instalado
 Uso de elementos gráficos aprendidos en clase.

4.- PROCEDIMIENTO

Fecha de Actualización 26/08/2010 Página 62


1. Analiza la problemática presentada
2. Realiza un diseño de interfaz de acuerdo a lo solicitado
3. Establece los mecanismos de base de datos necesarios
4. Desarrolla la aplicación solicitada

Problemática Presentada

Una empresa de transporte ofrece la posibilidad de que sus clientes puedan comprar y cancelar asientos al
único destino que ofrece la compañía, el costo del destino es de: $ 320; Se sabe que a los niños menores de
12 años y a los adultos mayores de 60 se les hace un 50 % de descuento. Así mismo a los docentes el 25% y a
los estudiantes el 40%. Se sabe que solo existen 2 lugares disponibles para docentes y 4 para estudiantes, mas
sin embargo no existe limite en niños y/o adultos mayores.

Para poder realizar las operaciones antes mencionadas, se sabe que la forma de operar es la siguiente:

Para la compra de boletos:

a) Un cliente podrá comprar todos los boletos que requiera, siempre y cuando haya disponibilidad en el
autobús.(Los boletos comprados por el cliente pueden ser de la misma categoría o diferente)
b) Para poder hacer valido el descuento de niño o adulto mayor, preguntar al usuario si el cliente presenta o
no tarjeta de INSEN .
c) Deberá pagar el costo del boleto(s) comprado(s) y no deberá permitir un costo menor a menos que en
ese momento decida ya no comprar los boletos. En caso de que ingrese una cantidad menor le deberá
indicar cuanto le falta por cubrir el monto total, o dar la opción de cancelar la venta de ese momento.

Fecha de Actualización 26/08/2010 Página 63


Para poder realizar las cancelaciones se considera lo siguiente:

a) El cliente podrá cancelar todos los boletos que dese reintegrándose el monto total del boleto. Tomar en
cuenta que el costo puede variar si es niño, adulto mayor, estudiante o profesor.
b) La cancelación solo procede con boletos comprados

Cada vez que se venda un boleto debe verificarse la disponibilidad de lugares en el autobús. Al iniciar las
ventas existen 40 lugares disponibles.

Como resultados por cliente deberá mostrarse los siguientes:

 Desglosar la compra de cada cliente


o Cantidad de boletos de cada categoría comprada por el cliente
o Monto que representa cada categoría que deberá pagar el cliente
o Monto de los descuentos realizados
o Monto Total que deberá pagar el cliente
 Número total de boletos comprados
 Número total de boletos cancelados
 No. De pasajeros que viajan cada autobús, mostrando cuántos niños, cuantos adultos y cuantos
ancianos y cuantos normales viajaran en el autobús.
 No. De lugares que aún quedan disponibles en cada destino
 Cantidad total que deberá haber en caja al cerrar las ventas del día por todos los boletos vendidos .

5. RESULTADOS

Integración de habilidades

6.- CONCLUSIONES

Anota al menos tres situaciones que se te presentaron durante el desarrollo de la aplicación solicitada, y a
forma en la que fueron resueltas.

Fecha de Actualización 26/08/2010 Página 64


7.- BIBLIOGRAFÍA

o) Java 7. Francisco Javier Moldes Teo


p) Java 2. Curso de Programación. Francisco Javier Ceballos Sierra
q) Java 2. Curso Práctico. Antonio J. Martin sierra
Como programar con Java. Deitel

Fecha de Actualización 26/08/2010 Página 65