Programación con tecnología Java J2SE / J2EE

Programación con tecnología java J2se-j2ee

Precios y Horas lectivas:
Fundamentos de Java: 420 € (100h)
Java J2SE: 420 € (100h)
Java J2EE: 420 € (100h)

El lenguaje de programación Java, uno de los más utilizados hoy en día, por su potencia, simplicidad, funcionalidad, capacidad y robustez, así como por su amplia integración con cualquier tipo de sistema, lo convierten en una de las herramientas más elegidas por los programadores, a la hora de implementar sus desarrollos.

La fuerza del lenguaje Java reside en la posibilidad de poder ejecutar un mismo programa en distintas plataformas, dispositivos o tipos de ordenadores, siendo compatible con cualquier sistema operativo, es decir, un programa desarrollado en un sistema en concreto puede ser ejecutado en cualquier otro, independientemente del hardware y software que éste utilice.

Todo ello es posible gracias a la Máquina Virtual de Java, componente fundamental que traduce las instrucciones del lenguaje Java, de forma personalizada a cualquier dispositivo de usuario.

Con Java un programador puede realizar todo tipo de aplicaciones: de escritorio (Java J2SE), aplicaciones ejecutadas en Internet (Java J2EE), aplicaciones para dispositivos móviles (teléfonos, PDA’s), etc.

Fundamentos de Java

En caso de que el alumno lo decida o lo necesite, con este primer módulo se cumplirán tres objetivos de aprendizaje muy importantes:

  1. Aprenderá Metodología de la Programación, en base al lenguaje Java.
  2. Aprenderá Programación Orientada a Objetos, en base al lenguaje Java
  3. A través de los pasos anteriores, descubrirá las bases del lenguaje Java, su sintaxis, lo que le permitirá afrontar con fluidez, los módulos posteriores.

Java J2SE

La plataforma J2SE (Java 2 Standard Edition) es la base de la tecnología Java, incluyendo herramientas de desarrollo, la Máquina Virtual Java (JVM) y documentación importante para el programador. Orientado a la creación de aplicaciones cliente / servidor y no incluye soporte para tecnologías de Internet.

Java J2EE

La plataforma J2EE añade a Java la funcionalidad necesaria para convertirse en un lenguaje orientado al desarrollo de servicios en Internet. Mediante JSP (un lenguaje de programación de páginas web dinámicas como PHP o ASP) y Servlets (scripts CGI en el servidor como los de Perl) se pueden desarrollar completos sitios Web, bajo la tecnología Java.

Con el curso de Java J2EE (JavaTM 2 Platform, Enterprise Edition), se estudia el desarrollo de aplicaciones web con servlets, JSP y EJB. Como proyecto final del curso, se realizará una tienda virtual.

Fundamentos de Java

CONTENIDO DEL CURSO APLICACIÓN PRÁCTICA
Metodología de la Programación Aprender conceptos básicos que será necesario aplicar en cualquier lenguaje de programación con que se trabaje.
Programación Orientada a Objetos Afianzamiento de conceptos relativos al diseño sistemático de programas, introducción en técnicas generales de diseño de algoritmos y ahondamiento en el paradigma de Programación Orientada a Objetos.
Contacto con el lenguaje Java Descubrir las bases del lenguaje Java, conocer su manejo para hacer frente con fluidez a los siguientes módulos.

Java J2SE

CONTENIDO DEL CURSO APLICACIÓN PRÁCTICA
Descargar la última versión de la plataforma J2SE: Compilador, Máquina Virtual de Java (JVM), etc. Instalación de la plataforma J2SE: Intérprete de Java, última versión del SDK, etc.
Los diferentes entornos de Desarrollo para Java (IDES): JBuilder, Forte4, etc. Manejar entornos de Desarrollo para la creación de proyectos complejos en Java.
La Sintaxis en Java: Clases, Objetos, Paquetes, Applets. Cómo crear Clases, Herencia de Clases, Paquete java.lang, etc.
Manejo de Eventos y Excepciones en Java. Creación de Excepciones personalizadas en Java, Estructura de Datos.
Interfaces Gráficas en Java: Paquetes AWT, SWING Desarrollar aplicaciones gráficas en Java
Conectividad en Java: RMI, Threads, Sockets. Desarrollar Aplicaciones Multitarea y Concurrentes, Conexión a Sitios Remotos, Redes.

Java J2EE

CONTENIDO DEL CURSO APLICACIÓN PRÁCTICA
Obtener e instalar J2EE. Herramientas que conforman la Plataforma J2EE. Instalar la edición Java empresarial. Arquitectura del J2EE
Creación de Aplicaciones Web en Java. Ciclo de Vida de los Componentes web, con J2EE. Estructura de las aplicaciones eb con Java. Directorio WEB-INF y el descriptor de despliegue de J2EE. Desplegar la primera aplicación Tomcat.
Crear archivos WAR con J2EE. Empaquetar las aplicaciones Web en archivos WAR, luego instalarlos en Tomcat.
Cómo configurar el Web.XML. Relación con J2EE. Crear el archivo web.xml, conocer su estructura, etiquetas y configurarlo adecuadamente.
Crear aplicaciones en Tomcat Configuración de Tomcat para las aplicaciones web
Crear y ejecutar Servlets Java Estructura del Servlet Java, ciclo de vida, servlets de sesión y manejo de cookies con Java.
JavaServer Pages (JSP). Crear JSP y etiquetas personalizadas. Crear páginas JSP. Manejar formularios con JSP. Lanzar páginas de error y aplicaciones con etiquetas personalizadas con JSP.
Componentes de negocio EJB (JavaBeans Entreprise). Programación de Java beans empresariales, manejo de la lógica de negocios. Ejemplos: bean de sesión, bean con persistencia.
Acceso a bases de datos desde Java (JDBC). Drivers JDBC. Procesar las transacciones y configurar fuentes de datos. Manejo de conexiones a bases de datos con Java. Ejemplos JDBC: con servlets y con JSPs. Práctica: utilizar JDBC con Servlets, JSPs y JavaBeans Entreprise.
Aplicaciones Java basadas en MVC Construir aplicaciones Java en base al patrón de diseño Modelo-Vista-Controlador MVC.

Introducción

Introducción, instalación y sintaxis del lenguaje Java.

  • Origen de Java
  • Características principales
    • Portabilidad
    • Sencillez
    • Orientado a Objetos
    • Seguridad
    • Multiproceso

Entorno Java

  • JDK: Arquitectura
  • JDK: Instalación
  • El compilador javac
  • Compilación de nuestro primer programa en Java
    • Crear el fichero fuente Java
    • Compilar el fichero fuente Java
  • El entorno de ejecución java
    • Entorno de ejecución: consola
  • El entorno de ejecución de applets appletviewer
    • Visualización de un Applet
  • Entornos de desarrollo Java

El lenguaje Java

  • Sintaxis del lenguaje Java
  • Comentarios
  • Identificadores
  • Palabras reservadas
  • Tipos de datos básicos
  • Literales
    • El tipo carácter (char)
  • Variables y constantes
    • Declaración de variables
    • Inicialización de variables
    • Asignación de un valor a una variable
    • Declaración de constantes
  • Expresiones y operadores
  • Operadores Aritméticos
    • Operadores de Incremento y decremento
    • Operadores Relacionales
    • Operadores Lógicos
    • Operadores de desplazamiento
    • Operadores de asignación
    • Operador condicional
    • Sentencias y estructuras de control
  • Estructura if-else
    • Bloques
    • Anidación
  • Estructura switch
  • Estructura while
    • Break
  • Estructura do …. while
  • Estructura for
    • Continue
  • Matrices y Cadenas
  • Declaración de matrices
  • Inicialización de Matrices
    • Asignación de memoria
    • Declaración e inicialización
  • Rellenar una matriz
    • Propiedad length
  • Recorrer una matriz
  • Matrices de más de una dimensión
    • Rellenar y recorrer matrices de más de una dimensión
    • La propiedad length en matrices de más de una dimensión
  • Cadenas

Programación Orientada a Objetos

Java es un lenguaje Orientado a Objetos, por lo que es importante que entender qué es la Programación Orientada a Objetos (POO)  y la forma en que Java lo enfoca.

  • Introducción
  • Objetos en Java
    • Declaración y creación de objetos
    • Destrucción de un objeto
  • Clases en Java
    • Declaración de una clase simple
    • Constructores
    • Control de acceso a los miembros de la clase
    • this
    • Modificadores de clase
  • Métodos de clase
    • Declaración de los Métodos
    • Sobrecarga de métodos
  • Método main
    • Modificadores del método main
    • Retorno de la main
    • Parámetros de la función main
  • Abstracción
  • Herencia e interfaces
    • Herencia
    • Interfaz
    • super
  • Polimorfismo
    • Concepto de polimorfismo
    • Extensión de clases y sobrescribir de métodos
    • Clases y métodos final
    • Clases y métodos abstractos
  • Estructuras de Datos
    • Interfaces
    • Clases vs. Interfaces
  • Listas
    • Pilas
    • Colas
  • Árboles
    • Árboles binarios

Creación y paquetes estandars en Java

El lenguaje de programación Java es muy extenso, por lo que está dividido en diferentes grupos de clases llamados paquetes, en este tema se realizará un breve repaso de las clases más usuales y a qué paquetes pertenecen.

  • Introducción
    • Creación de un paquete
    • Utilización de las clases e interfaces de un paquete
    • Paquetes estándar
  • El paquete java.lang
    • Clase Object
    • Clase Math
  • Las Clases String y StringBuffer
    • ¿Por qué dos clases String?
    • Crear String y StringBuffer
    • Métodos Accesores
    • Modificar un StringBuffer
    • Convertir Objetos a Strings
    • Los Strings y el Compilador Java
  • Clases Encapsuladoras
  • El paquete java.util
  • Los paquetes java.applet, java.io, java.net, java.awt

Manejo de Errores y Excepciones

Uno de los mayores problemas en la programación es controlar los errores. Java proporciona una forma clara sencilla y muy potente de abordar estos problemas: Las Excepciones. Se estudiará cómo lanzar y controlar las distintas excepciones que pueden surgir en una aplicación Java.

  • Manejo de Errores Utilizando Excepciones
  • ¿Qué es un Excepción y Por Qué Debo Tener Cuidado?
    • Ventaja 1: Separar el Manejo de Errores del Código Normal
    • Ventaja 2: Propagar los Errores sobre la Pila de Llamadas
    • Ventaja 3: Agrupar Errores y Diferenciación
    • ¿Y ahora qué?
  • Primer Encuentro con las Excepciones Java
  • Requerimientos Java para Capturar o Especificar Excepciones
    • Capturar
    • Especificar
    • Excepciones Chequeadas
    • Excepciones que pueden ser lanzadas desde el ámbito de un método
  • Tratar con las Excepciones Java
    • El ejemplo: ListaDeNumeros
    • Capturar y Manejar Excepciones
    • Especificar las Excepciones que pueden ser Lanzadas por un Método
  • El Ejemplo ListaDeNumeros
  • Capturar y Manejar Excepciones
    • El Bloque try
    • Los bloques catch
    • El bloque finally
    • Poniéndolo Todo Junto
  • El Bloque Try
  • Los Bloques catch
    • Ocurre una IOException
    • Capturar Varios Tipos de Excepciones con Un Manejador
  • El Bloque finally
    • ¿Es realmente necesaria la sentencia finally?
  • Poniéndolo todo Junto
    • Escenario 1: Ocurre una excepción IOException
    • Escenario 2: Ocurre una excepción ArrayIndexOutOfBoundsException
    • Escenario 3: El bloque try sale normalmente
  • Especificar las Excepciones Lanzadas por un Método
  • La Sentencias throw
    • La cláusula throws
  • La Clase Throwable y sus Subclases
    • Error
    • Exception
    • Excepciones en Tiempo de Ejecución
  • Crear Clases de Excepciones
    • ¿Qué puede ir mal?
    • Elegir el Tipo de Excepción Lanzada
    • Elegir una Superclase
    • Convenciones de Nombres
  • Excepciones en Tiempo de Ejecución – La Controversia

Entrada/Salida de Ficheros

En cualquier lenguaje de programación, la comunicación con el exterior es clave para construir aplicaciones. Java ofrece una potente herramienta para gestionar la E/S : los streams. Se aprenderá su utilización y aplicación a los ficheros.

  • I/O: Leer y Escribir
    • Introducción a los Streams I/O
    • Serialización de Objetos
    • Trabajar con Ficheros de Acceso Aleatorio
    • Y el Resto…
  • Introducción a los Streams de I/O
    • Streams de Caracteres
    • Streams de Bytes
    • Entender las Superclases de I/O
  • Usar Streams de Profundidad
  • Como usar Streams de Ficheros
  • Como usar Piped Streams
    • Usar Streams para Envolver otros Streams
  • Usar Streams de Proceso
  • Cómo Concatenar Ficheros
  • Trabajar con Streams Filtrados
    • Usar Streams Filtrados
    • Cómo usar DataInputStream y DataOutputStream
    • Escribir Nuestros Propios Streams Filtrados
  • Cómo usar DataInputStream y DataOutputStream
  • Escribir Streams Filtrados
    • La clase CheckedOutputStream
    • La Clase CheckInputStream
    • El Interface Checksum y la clase Adler32
    • Un Programa de Prueba
    • Filtrar Ficheros de Acceso Aleatorio
  • Serialización de Objetos
  • Serializar Objetos
    • ¿Cómo Escribir en un ObjectOutputStream?
    • ¿Cómo Leer desde un ObjectInputStream?
  • Proporcionar Serialización de Objetos para Nuestras Clases
    • Implementar el Interface Serializable
    • Personalizar la Serialización
    • Implementar el Interface Externalizable
    • Proteger la Información Sensible
  • Trabajar con Ficheros de Acceso Aleatorio
    • Usar Ficheros de Acceso Aleatorio
    • Escribir Filtros para Ficheros de Acceso Aleatorio
  • Usar Ficheros de Acceso Aleatorio
  • Escribir Filtros para Ficheros de Acceso Aleatorio
    • CheckDataOutput contra CheckOutputStream
    • CheckDataInput contra CheckInputStream
    • Los Programas Principales
  • Y el Resto…

Hilos (Threads)

Para poder efectuar diferentes tareas en un programa hecho con Java, se proporcionan unas clases e interfaces (Threads, Runnable) para aplicar soluciones a los problemas. Se estudiará cómo utilizarlos, aprendiendo cómo funcionan.

  • Introducción a los Hilos
    • ¿Qué es un Hilo?
  • Creación de hilos
    • Hilos heredados
    • Hilos implementados
  • El cuerpo de los Hilos
    • Método run()
    • Un Applet de un Reloj Digital
  • Vida de los Hilos
    • Un Nuevo Thread
    • Ejecutable
    • No Ejecutable
    • Muerto
    • El Método isAlive()
  • Prioridad de los Hilos
    • Threads Egoístas
    • Tiempo-Compartido
  • Hilos demonios
  • Grupo de Hilos
    • El Grupo de Threads por Defecto
    • Crear un Thread en un Grupo Específico
    • Obtener el Grupo de un Thread
    • La clase ThreadGroup
  • Sincronización de los Hilos
    • Volatile
    • Monitores
    • Métodos Wait() y Notify()

Applets

Un applet Java es un programa que se adhiere a una serie de convenciones que le permiten ejecutarse en un navegador compatible con Java. Con el siguiente temario se estudiará qué son los applets, las partes que lo componen, como crearlos, cómo generar gráficos, empotrar sonidos, etc.

  • La Anatomía de un Applet
    • Importar Clases y Paquetes
    • Definir una Subclase de Applet
    • Implementar Métodos del Applet
    • Ejecutar un Applet
  • Importar Clases
  • Definir una Subclase Applet
  • Implementar Métodos de un Applet
  • Ejecutar un Applet
  • Introducción a los Applets
    • El Applet Simple
  • Ciclos de Vida de un Applet
    • Cargar el Applet
    • Abandonar y Volver a la Página del Applet
    • Recargar un Applet
    • Salir del Navegador
    • Sumario
  • Métodos de Applet
  • Métodos de Dibujo y Manejo de Eventos
  • Métodos para Añadir Componentes UI
    • Componentes UI Pre-Fabricados
    • Métodos para Usar Componentes UI en Applets
    • Añadir un Campo de Texto no Editable al Applet Simple
  • ¿Qué puede y qué no puede hacer un Applet?
    • Restricciones de Seguridad
    • Capacidades de los Applets
  • Probar un Applet
  • Sumario de Introducción a los Applets
  • Aprovecharse del API de Applet
  • Encontrar y Cargar Ficheros de Datos
  • Mostrar Cadenas Cortas de Estado
  • Mostrar Documentos en el Navegador
  • Ejecutar Sonidos
    • Métodos Relacionados con el Sonido
    • Un Ejemplo
  • Definir y Usar Parámetros en un Applet
  • Decidir qué Parámetros Soportar
    • ¿Qué debería un Applet permitir que el usuario configurara?
    • ¿Cómo deberían llamarse los Parámetros?
    • ¿Qué tipo de Valor debería Aceptar cada Parámetro?
    • ¿Qué valor por Defecto Debería Tener cada Parámetro?
  • Escribir el Código para Soportar Parámetros
  • Dar Información sobre los Parámetros
  • Usar la Etiqueta APPLET
    • Especificar Parámetros
    • Especificar Código HTML y Texto Alternativos
    • Especificar el Directorio del Applet
    • Combinar ficheros de Applets en un Sólo Archivo
    • Otros Atributos de la Etiqueta APPLET
  • Restricciones de Seguridad
  • Usar el AWT para crear un Interface de Usuario
  • Mostrar Diagnósticos por los Streams de Salida Estándar y de Error
  • Obtener Propiedades del Sistema
    • Propiedades de Sistema que los Applets Pueden Leer
    • Propiedades del Sistema Prohibidas
  • Threads en Applets
    • Usar un Thread para Realizar Tareas Repetitivas
    • Usar un Thread para Realizar Inicializaciones de un Sola Vez
  • Trabajar con Aplicaciones del Lado del Servidor
  • Un Sencillo Applet Cliente de una Red
  • Antes de Desplegar un Applet
  • El Applet Perfectamente Finalizado

Interface Gráfico de Usuario (AWT)

Introducción a todos los elementos necesarios que proporciona el paquete AWT en el entorno Java, para ayudar a crear una aplicación visual, utilizando listas, botones, ventanas, etc.

  • Introducción al UI de Java
  • Componentes del AWT
    • Los controles básicos: botones, checkbox, choices, listas, menús y campos de texto
    • Otras formas de obtener entradas del usuario: Barras de Desplazamiento y Áreas de Texto.
    • Crear Componentes del Cliente: Lienzos
    • Etiquetas
  • Otras Clases del AWT
  • Utilizar los Componentes del AWT
    • Reglas Generales para Utilizar Componentes
    • Cómo utilizar…
  • Reglas Generales del Manejo de Componentes
    • Cómo añadir Componentes a un Contenedor
    • Qué proporciona la clase Component
    • Cómo cambiar la apariencia y el comportamiento de los Componentes.
  • Utilizar la clase Button
  • Utilizar la Clase Canvas
  • Utilizar la clase CheckBox
  • Utilizar la Clase Choice
  • Utilizar las Clases TextArea y Textfield
  • Control de Distribución
  • Reglas de Utilización de Controladores de Distribución
    • Cómo Elegir un Controlador de Disposición
    • Cómo crear un Controlador de Disposición y Asociarlo con un Contenedor
    • Reglas del Pulgar para utilizar Controladores de Disposición
  • Cómo usar BorderLayout
  • Cómo usar CardLayout
  • Cómo usar FlowLayout
  • Cómo usar GridLayout
  • Utilizar GridBagLayout
  • Dibujar
    • El Objeto Graphics
    • El Sistema de Coordenadas
    • Las Cuatro Formas del Método repaint()
  • Dibujar Formas Sencillas
    • Ejemplo: Un Ejemplarizador de Formas
  • Dibujar Texto
    • Dibujar Texto
    • Obtener información sobre la Fuente: FontMetrics
  • Reglas de Utilización de Controladores de Distribución
    • Cómo Elegir un Controlador de Disposición
    • Cómo crear un Controlador de Disposición y Asociarlo con un Contenedor
    • Reglas del Pulgar para utilizar Controladores de Disposición
  • Bucles de Animación
    • Inicializar Variables de Ejemplar
    • El bucle de animación
    • Asegurar un Ratio de Marcos por Segundos
    • Comportamiento Educado
  • Animar Gráficos
    • Animación
    • Eliminar el Parpadeo: Sobrescribir el Método update()
    • Eliminar el Parpadeo: Implementar el Doble Buffer

Swing y las Java Foundation Classes (I)

Componentes Swing, ayudar a elegir los apropiados para GUI, explicando cómo usarlos, añadiendo la información necesaria para hacerlo de forma efectiva. Se explicará el Aspecto y Comportamiento Conectable y el soporte de Accesibilidad cuando afecten a la forma de escribir programas Swing.

  • Sobre el JFC y Swing
    • ¿Qué son el JFC y Swing?
    • ¿Qué Paquetes Swing Debería Utilizar?
    • ¿Que tienen de diferente los componentes Swing de los componentes AWT?
  • Visita Rápida por el Código de un Programa Swing
    • Importar paquetes Swing
    • Elegir el Aspecto y Comportamiento
    • Configurar el Contenedor de Alto Nivel
    • Configurar los Botones y las Etiquetas
    • Añadir Componentes a los Contenedores
    • Añadir Bordes Alrededor de los Componentes
    • Manejar Eventos
    • Tratar con Problemas de Threads
    • Soportar Tecnologías Asistidas
  • Herencia de Componentes y Contenedores
  • Control de Distribución
    • Seleccionar el Controlador de Distribución
    • Proporcionar Consejos sobre un Componente
    • Poner Espacio entre Componentes
    • Cómo Ocurre el Control de Distribución
  • Manejo de Eventos
    • Cómo Implementar un Manejador de Eventos
    • Los Threads y el Manejo de Eventos
  • Dibujo
    • Cómo funciona el dibujo
    • Un Ejemplo de Dibujo
  • Los Threads y Swing
    • La Regla de los Threads
    • Excepciones a la Regla
    • Cómo Ejecutar Código en el Thread de Despacho de Eventos
  • Más Características Swing
    • Características que Proporciona JComponent
    • Iconos
    • Actions
    • Aspecto y Comportamiento Conectable
    • Soporte para Tecnologías Asistidas
    • Modelos de Datos y Estados Separados
  • Anatomía de un Programa Swing
    • Componentes Swing
    • El Árbol de Contenidos
    • Control de Distribución y Bordes
    • Modelos Separados
    • Aspecto y Comportamiento Conectable
    • Manejo de Eventos
  • Reglas Generales del Uso de Componentes
  • La Clase JComponent
  • Contenedores de Alto Nivel
  • ¿Cómo Crear Frames?
    • Añadir Componentes a un Frame
  • ¿Cómo crear Diálogos?
    • Introducción a los diálogos
    • Características de JOptionPane
    • El Ejemplo DialogDemo
    • Personalizar el texto de los botones en un diálogo estándar
    • Obtener entrada del usuario desde un diálogo
    • Detener la Despedida Automática de un Diálogo
  • Contenedores Intermedios
  • ¿Cómo Usar JPanel?
    • Otros Contenedores
  • ¿Cómo Usar ScrollPane?
    • Cómo funciona un ScrollPane
    • Seleccionar el Vigilante de ScrollBar
    • Proporcionar Decoración Personalizada
    • Implementar un Cliente de Desplazamiento Seguro
  • ¿Cómo Usar SplitPane?
  • ¿Cómo Usar TabbedPane?
  • ¿Cómo Usar ToolBar?
  • ¿Cómo Usar InternalFrame?
    • Frames Internos frente a Frames Normales
    • Reglas de utilización de Frames Internos
  • ¿Cómo Usar LayeredPane?
  • ¿Cómo Usar RootPane?
    • El Panel de Cristal
  • Usar Controladores de Distribución
    • Reglas Generales para el uso de Controladores de Distribución
  • Reglas de Uso de Controladores de Distribución
    • Cómo elegir un Controlador de Distribución
    • Cómo crear un Controlador de Distribución y Asociarlo con un Contenedor
    • Reglas del pulgar para usar Controladores de Distribución
  • ¿Cómo usar BorderLayout?
  • ¿Cómo usar FlowLayout?
  • ¿Cómo usar BoxLayout?
    • Características de BoxLayout
    • Usar Componentes Invisibles como Relleno
  • ¿Cómo usar CardLayout?
  • ¿Cómo usar GridLayout?
  • ¿Cómo usar GridBagLayout?
    • Especificar Restricciones a GridBagLayout
  • Crear un Controlador de Distribución
  • Hacerlo sin Controlador de Distribución

Swing y las Java Foundation Classes (II)

Continuando con el anterior apartado, se profundiza y completa el estudio sobre los entornos gráficos generados con Swing, utilización de controles (botones, etc.) y manejo de eventos (listeners).

  • ¿Cómo Usar Button?
  • ¿Cómo Usar CheckBox?
  • ¿Cómo Usar ColorChooser?
    • ColorChooserDemo: Toma 2
    • Mostrar un Selector de Color en un Diálogo
    • Reemplazar o Eliminar el Panel de Previsionado
    • Crear un Panel Selector Personalizado
  • ¿Cómo Usar ComboBox?
    • Utilizar un ComboBox no Editable
  • ¿Cómo Usar FileChooser?
  • ¿Cómo Usar Label?
  • ¿Cómo Usar List?
  • ¿Cómo Usar Menu?
    • La herencia de componentes Menú
    • Crear Menús
    • Manejar Eventos desde Ítems de Menús
    • Traer un Menú Desplegable
    • Personalizar la Distribución de un Menú
  • ¿Cómo Usar MonitorProgress?
    • Cómo usar Progress Bars
    • Cómo usar Progress Monitors
    • Decidir si utilizar una Barra o un Monitor de Progreso
  • ¿Cómo Usar RadioButton?
  • ¿Cómo Usar Slider?
    • Proporcionar Etiquetas para Deslizadores
  • ¿Cómo Usar Table?
    • Crear una Tabla Sencilla
    • Añadir una Tabla a un Contenedor
    • Seleccionar y Cambiar la Anchura de las Columnas
    • Detectar Selecciones de Usuario
    • Crear un Modelo de tabla
    • Detectar Cambios de Datos
    • Conceptos: Editores de Celdas e Intérpretes
    • Validar el Texto Introducido por el Usuario
    • Usar un ComboBox como un Editor
    • Especificar otros Editores
  • ¿Cómo Usar Componentes de Texto?
  • Ejemplos de Componentes de Texto
    • Un ejemplo de uso de Text Field
    • Un ejemplo de uso de Password Field
    • Usar un TextArea
    • Usar un Editor Pane para mostrar Texto desde una URL
    • Un ejemplo de uso de un Text Pane
  • Reglas de Uso de Componentes de Texto
    • Sobre los Documentos
    • Personalizar un Documento
    • Escuchar los Cambios de un Documento
    • Sobre los Kits de Edición
    • Asociar Acciones con Ítems de Menú
    • Sobre los Mapas de Teclado
    • Asociar Acciones con Pulsaciones de Teclas
    • Implementar Deshacer y Repetir
    • Escuchar los cambios de cursor o de selección
  • ¿Cómo usar TextField?
    • Crear un Text Field Validado
    • Usar un Oyente de Document en un Campo de Texto
    • Proporcionar un Campo de Password
  • ¿Cómo usar EditorPane?
  • ¿Cómo usar ToolTip?
  • ¿Cómo usar Tree?
    • Crear un Árbol que Reaccione a las Selecciones
    • Personalizar la visualización de un Árbol
    • Cambiar Dinámicamente un Árbol
  • Ejemplos de Manejo de Eventos
    • Un ejemplo más complejo
    • Un Ejemplo de Manejo de Otro Tipo de Evento
  • Reglas Generales para Escribir Oyentes de Eventos
    • La clase AWTEvent
    • Eventos Estándar del AWT
    • Usar Adaptadores y Clases Internas para Manejar Eventos
  • Eventos Generados por Componentes Swing
    • Eventos que todos los componentes Swing pueden generar
    • Otros Eventos comunes
    • Eventos no manejados comúnmente
  • Manejar Eventos
  • Oyente de Action
    • Métodos de Evento Action
    • Ejemplos de Manejo de Eventos Action
    • La clase ActionEvent
  • Oyente de Caret
    • Métodos de Evento Caret
    • Ejemplos de Manejo de Eventos Caret
    • La clase CaretEvent
  • Oyente de Change
    • Métodos de Evento Change
    • Ejemplos de Manejo de Eventos Change
    • La clase ChangeEvent
  • Oyente de Component
    • Métodos de Evento Component
    • Ejemplos de Manejo de Eventos Component
    • La clase ComponentEvent
  • Oyente de Container
    • Métodos de Evento Container
    • Ejemplos de Manejo de Eventos Container
    • La clase ContainerEvent
  • Oyente de Document
    • Métodos de Evento Document
    • Ejemplos de Manejo de Eventos Document
    • El interface DocumentEvent
  • Oyente de Focus
    • Métodos de Eventos Focus
    • Ejemplos de Manejo de Eventos Focus
    • La clase FocusEvent
  • Oyente de InternalFrame
    • Métodos de Evento Internal Frame
    • Ejemplos de Manejo de Eventos InternalFrame
    • La clase InternalFrameEvent
  • Oyente de Ítem
    • Métodos de Evento Ítem
    • Ejemplos de Manejo de Eventos Ítem
    • La clase ItemEvent
  • Oyente de Key
    • Métodos de Evento Key
    • Ejemplos de manejo de Eventos Key
    • La clase KeyEvent
  • Oyente de ListSelection
    • Métodos de Evento List Selection
    • Ejemplos de Manejo de Eventos List Selection
    • La clase ListSelectionEvent
  • Oyente de Mouse
    • Métodos de Eventos Mouse
    • Ejemplos de Manejo de Eventos Mouse
    • La Clase MouseEvent
  • Oyente de MouseMotion
    • Métodos de Evento MouseMotion
    • Ejemplos de Manejo de Eventos MouseMotion
    • Métodos de Eventos usados por oyentes de MouseMotion
  • Oyente de UndoableEdit
    • Métodos de eventos UndoableEdit
    • Ejemplos de manejo de eventos UndoableEdit
    • La clase UndoableEditEvent
  • Oyente de Window
    • Métodos de evento Window
    • Ejemplos de manejo de eventos de Window
    • La clase WindowEvent
  • ¿Cómo usar Action?
  • ¿Cómo Soportar Tecnologías Asistidas?
  • ¿Cómo usar Iconos?
  • ¿Cómo Seleccionar el Aspecto y Comportamiento?
    • Cómo seleccionar el Aspecto y Comportamiento
    • Cómo elige el UI el Aspecto y Comportamiento
    • Cambiar el Aspecto y Comportamiento después de la Arrancada
  • ¿Cómo usar Threads?
    • Usar el método invokeLater
    • Usar el método invokeAndWait
    • Cómo Crear Threads
    • Usar la clase SwingWorker
  • ¿Cómo usar Timer?
    • Usar un Timer para Realizar Animaciones

Tetris – Versión Swing-JFC

A modo de práctica general, se creará una primera versión (basada en Swing-JFC) de la aplicación que servirá como proyecto final de curso: Tetris.

  • Tetris – Definición
  • Las Figuras
    • Una clase Abstracta
    • La primera Figura
    • Figuras con Dos Estados
    • Figuras con Cuatro Estados
  • La Clase Tablero
    • El constructor
    • Los Métodos para borrar y rellenar el tablero
    • Los Métodos que devuelven los números de filas y columnas
    • Los Métodos que Ponen y Borran Fichas del Tablero
    • El Método que cambia el color de una ficha cuando llega a su fin
    • El Método que comprueba si una ficha cabe en la posición donde la queremos dejar
    • El Método que comprueba si se ha completado alguna línea
    • Los Métodos que detectan si la ficha tiene alguna alrededor (abajo, derecha o izquierda)
    • El método que dibuja el tablero con los bordes y las fichas
    • La clase Tablero completa
  • La clase Principal (Juego)
    • Crear todo el GUI
    • El Thread que mueve las fichas
    • El método main()
    • Un método auxiliar que muestra un diálogo al finalizar el juego
    • Crear una nueva Ficha
    • Comprobar si una ficha puede bajar
    • Mover una Ficha
    • Girar una Ficha
    • La clase Juego completa
    • Y ahora… a jugar!!!

Tetris – Versión Swing-JFC

Se aprenderá a trabajar en red con Java, utilizando los protocolos TCP y UDP de 4 capas, entendiendo sus diferencias, decidiendo que clases de Java se deberán aplicar y estudiando una herramienta que permite todo tipo de comunicaciones: sockets.

  • Trabajo en Red Básico
    • Puertos
  • ¿Qué es una URL?
  • Crear una URL
    • Crear una URL relativa a otra
    • Otros Constructores de URL
    • MalformedURLException
  • Analizar una URL
  • Leer desde una URL
  • Conectar con una URL
  • Leer y Escribir a través de un objeto URLConnection
    • Leer desde un objeto URLConnection
    • Escribir a una URLConnection
  • ¿Qué es un Socket?
  • Leer y Escribir en un Socket
  • El Lado del Servidor de un Socket
    • La clase Conexion
    • Las clases Servidor y Cliente
    • La clase Chat
    • A chatear!
  • ¿Qué es un Datagrama?
  • Datagramas cliente-servidor
    • La Clase QuoteServer
    • La Clase QuoteServerThread
    • La Clase QuoteClient
  • Controlador de Seguridad
    • Introducción al Controlador de Seguridad
    • Escribir un Controlador de Seguridad
    • Instalar tu Propio Controlador de Seguridad
    • Decidir los Métodos a Sobrescribir de la clase SecurityManager
  • Introducción a los Controladores de Seguridad
  • Escribir un Controlador de Seguridad
  • Instalar un Controlador de Seguridad
    • Ejecutar el Programa de Prueba
  • Decidir qué Métodos Sobrescribir del SecurityManager

Invocación Remota de Métodos

Se aprenderá a trabajar en red con Java, utilizando los protocolos TCP y UDP de 4 capas, entendiendo sus diferencias, decidiendo que clases de Java se deberán aplicar y estudiando una herramienta que permite todo tipo de comunicaciones: sockets.

  • Trabajar con RMI
  • Introducción a las Aplicaciones RMI
    • Ventajas de la Carga Dinámica de Código
    • Interfaces, Objetos y Métodos Remotos
    • Crear Aplicaciones Distribuidas utilizando RMI
    • Diseñar e implementar los componentes de nuestra aplicación distribuida.
    • Compilar los Fuentes y Generar stubs.
    • Hacer accesibles las Clases en la Red.
    • Arrancar la Aplicación.
    • Construir un Motor de Cálculo Genérico
  • Escribir un Servidor RMI
  • Diseñar un Interface Remoto
  • Implementar un Interface Remoto
    • Declarar los Interfaces Remotos que están siendo Implementados
    • Definir el Constructor
    • Proporcionar una Implementación para cada Método Remoto
    • Pasar Objetos en RMI
    • El método main() del Servidor
    • Crear e Instalar un Controlador de Seguridad
    • Poner el Objeto Remoto a Disposición de los Clientes
  • Crear un Programa Cliente
  • Compilar el Ejemplo
    • Compilar todas las clases
    • Construir las Clases del Servidor
  • Ejecutar el Ejemplo
    • Una Nota sobre la Seguridad
    • Arrancar el Servidor
    • Arrancar el Cliente

Proyecto Final: Tetris en Red

Se indican los requisitos que deberá incorporar el ejercicio que servirá como proyecto final de curso. Aunque se trata de algo un tanto complicado, se completará con un poco de ayuda y algunas pistas…

  • Proyecto Final de Curso: Tetris en Red
    • La pantalla de Inicial
    • Pantallas de conexión para el caso de dos jugadores
    • Y, por fin, la pantalla de juego
    • Las reglas del juego
  • Clases que Podemos Reutilizar sin Ninguna Modificación
  • La pantalla Inicial
  • Las clases Cliente y Servidor
  • Modificaciones en la clase Tablero
  • Modificaciones en la clase Juego
  • Modificaciones en la clase Juego (Continuación)
  • Los threads receptores
  • A jugar!!!

Introducción a J2EE

Introducción a la plataforma J2EE, comentando detalles sobre su descarga, configuración e instalación. Vista global de las distintas clases de aplicaciones web.

  • Prefacio
  • Obtener e Instalar el Software Necesario.
    • Descargar el Software
    • Instalar el Software
    • Configuración del Entorno
  • Herramientas que Componen la Plataforma J2EE.
    • J2EE Administration Tool
    • Cleanup Tool
    • Cloudscape Server
    • DeployTool
    • J2EE Server
    • Key Tool
    • Packager Tool
    • Realm Tool
    • runclient Script
    • Verifier Tool

Introducción a las Aplicaciones Web

  • Componentes Web
  • Ciclo de Vida de los Componentes Web
  • Archivos de Aplicación Web
    • Estructura de un Directorio WAR
    • Crear un Fichero WAR
  • Descriptor de Despliegue
    • Prologo del Descriptor de Despliegue
    • Alias Paths
    • Parámetros de Contexto
    • Oyentes de Eventos
    • Filtros de Mapeo
    • Mapeos de Error
    • Referencias a Entradas de Entorno, entradas de Recursos de Entorno o Recursos
  • Desplegar una Aplicación Tomcat

La Tecnología Servlet

Trabajo con servlets, abarcando su definición, estructura y las ventajas que conlleva su utilización.

  • Introdución a los Servlets
    • ¿Qué son los Servlets Java?
    • ¿Cuáles son las Ventajas de los Servlets sobre el CGI Tradicional?
  • Estructura básica de un Servlet
    • Un Sencillo Servlet que Genera Texto Normal
    • Un Servlet que Genera HTML
  • Manejar Formularios en un Servlet
    • Ejemplo: Leer Tres Parámetros
    • Ejemplo: Listar todos los Datos del Formulario
  • Cabeceras de Solicitud en Servlets
    • Leer Cabeceras de Solicitud desde Servlets
    • Ejemplo: Imprimir todas las Cabeceras
  • Variables CGI en Servlets
    • Equivalentes Servlet a la Variables Estándares CGI
  • Códigos de Estado HTTP
    • Especificar Códigos de Estado
    • Códigos de Estado HTTP 1.1 y sus Significados
    • Ejemplo: Motor de Búsqueda
  • Especificar Cabeceras de Respuesta HTTP
    • Cabeceras de Respuesta más Comunes y sus Significados
    • Ejemplo: Recarga Automática de Páginas como Cambio de Contenido
  • Manejar Cookies
    • El API Servlet Cookie
    • Algunas utilidades menores de los Cookies
    • Ejemplo: Un Interface de Motor de Búsqueda Personalizado
  • Seguimiento de Sesión
    • ¿Qué es el Seguimiento de Sesión?
    • El API de Seguimiento de Sesión

Java Server Pages

Tecnología JSP (Java Server Pages), nacida para fomentar el desarrollo de sitios web por parte de diseñadores sin altos conocimientos de programación.

  • Introdución a las Páginas JSP
    • ¿Qué es JSP?
    • ¿Cuáles son las Ventajas de JSP?
    • JavaServer Pages 1.0
    • Plantilla de Texto: HTML estático
  • Scritples JSP
    • Expresiones JSP
    • Scriptlets JSP
    • Declaraciones JSP
  • Directivas JSP
    • Directiva page JSP
    • La directiva include JSP
    • Ejemplo: Usar Elementos de Script y Directivas
  • Acciones JSP
    • Acción jsp:include
    • Acción jsp:useBean
    • Acción jsp:setProperty
    • Acción jsp:getProperty
    • Acción jsp:forward
    • Acción jsp:plugin
  • Manejar Formularios con JSP
    • ¿Qué le sucede a los datos del Formulario?
    • ¿Cómo se pasan los datos entre el cliente y el servidor?
    • ¿Cómo Crear un Formulario?
    • Construir el Formulario HTML
    • Usar los Métodos GET y POST
    • ¿Qué es un Bean o JavaBean?
    • Escribir el Bean
    • Obtener los Datos desde el Formulario hacia el Bean
    • Chequear el Objeto Request
    • Obtener Datos desde el Bean a la Página JSP
  • Manejar Excepciones en JSP
    • ¿Cómo Añadir Páginas de Error?
    • Ejemplo de Buscador de Direcciones de Email
    • Manejar Excepciones en el Bean
    • Cuando el Usuario Intenta Añadir un Valor Null
    • Capturar un Valor Null Durante la Adicción
    • Cuando el Usuario Intenta Buscar un Valor Null
    • Capturar un Valor Null durante la Búsqueda
    • Cuando el Usuario Intenta Borrar un Valor Null
    • Capturar un Valor Null durante el Borrado
    • Llamar a una Página de Error desde otra Página
    • Escribir una Página de Error
    • Escribir un Sencillo Mecanismo de Pila
  • Desarrollar Etiquetas JSP Personalizadas
    • Introducción a las Etiquetas
    • Etiquetas JSP Personalizadas
    • Definir una Etiqueta
    • Etiquetas Parametrizadas
    • Librerías de Etiquetas
    • Etiquetas con Cuerpo
  • Apéndices – JavaServer Pages
    • Sumario de Sintaxis
    • Convenciones de Comentarios y Caracteres de Escape
    • Variables Predefinidas

Enterprise JavaBeans

Entorno EJB (Enterprise JavaBeans), tecnología relacionada con la lógica de negocio, que permite el acceso a componentes distribuidos.

  • Introducción a los Beans Enteprise
    • El Contenedor EJB
  • Beans Enterprise
    • Los interfaces Remote y Home
    • Métodos de Negocio
    • Beans de Entidad
    • Beans de Sesión
    • Métodos del Ciclo de Vida
    • De vuelta a los Interface Remote y Home
  • Beans Enterprise Como Objetos Distribuidos
  • Beans Enterprise del Tipo Entidad
    • Persistencia Manejada por el Contenedor
    • Persistencia Manejada por el Bean
  • Bean Enterprise del Tipo Sesión
    • Beans de Sesión sin Estado
    • Beans de Sesión Con Estado
  • Desplegar Beans Enterprise
  • Clientes de Beans Enterprise
  • Beans Enterprise en JSP
    • Convenciones de Diseño de Componentes JavaBeans
    • ¿Por qué usar Componentes JavaBeans?
    • Crear y Usar Componentes JavaBeans
    • Seleccionar Propiedades de un Componente JavaBean
    • Recuperar Propiedades de un Componente Javabean

JDBC – Conexiones a Bases de Datos

Análisis del acceso a bases de datos, utilizando el entorno JDBC (Java DataBase Connectivity).

  • Introdución a JDBC
  • Arquitectura de Nuestro Sistema
    • El Modelo de Dos Capas
    • El Modelo de n-Capas
  • Fundamentos de los Drivers JDBC
    • Registrar un Driver JDBC
    • URLs de Drivers JDBC
    • Drivers del Tipo 1
    • Drivers del Tipo 2
    • Drivers del Tipo 3
    • Drivers del Tipo 4
  • Transaciones con Bases de Datos
    • Transacciones Básicas
    • Más sobre Transacciones
    • Niveles de Transacción
    • Lotes y Transacciones
    • Control Fino de las Transacciones
  • Fuentes de Datos
    • Fuentes de Datos Básicas
    • Repaso Rápido de JNDI
    • Registrar una Fuente de Datos
    • Usar una Fuente de Datos
    • Re-Unir una Fuente de Datos
    • Borrar una Fuente de Datos
  • Almacenes de Conexiones
    • ¿Por qué necesitamos Almacenes de Conexiones
    • ¿Qué es una PooledConnection?
    • Inicializar un Almacén de Conexiones
    • Usar un Almacén de Conexiones
  • Optimizar las Conexiones con Bases de Datos
    • Métodos JDBC DataSource y Driver
    • Métodos JDBC Connection
  • Diseño de una Aplicación con Bases de Datos
    • Sistema de Base de Datos a Utilizar
    • Instalar MySQL y Crear Nuestra Base de Datos
    • Utilizar el Fichero mm.mysql-2.0.4-bin.jar
    • Inicialización de la Conexión a la Base de Datos
    • El descriptor de despliegue
    • El Repositorio de Conexiones
  • Crear la Bases de Datos
    • Creación del Esquema
    • Manejo de Errores
    • Limpieza de Esquema
    • Rellenar la Tabla
    • Ver los Resultados
  • Sentencias Preparadas
    • Introducción a las Sentencias Preparadas
    • Insert Preparado
    • Query Preparado
  • Sentencias Callables
    • Introducción a los Objetos CallableStatement
    • Crear un Procedimiento Almacenado
    • Llamar a un Procedimiento Almacenado
  • Tipos de Datos Avanzados
    • Introducción a los Tipos de Datos Avanzados
    • Insertar Blobs
    • Seleccionar un Blob
    • Insertar un Clob
    • Seleccionar un Clob

JDBC en aplicaciones Web

  • Aplicaciones Web con JDBC: Solución Servlets
    • Funciona, pero…
  • Aplicaciones Web con JDBC: Solución JSP
    • La página JSP
    • Datos y Generación HTML
    • Control de Errores
    • También funciona pero…
  • Aplicaciones Web con JDBC: JSP, Servlets y JavaBeans
    • El Servlet Controlador
    • El Servlet Vista
    • La página JSP
    • El Bean de Ayuda
    • Sumario

Proyecto final: La tienda Virtual

Creación de tienda online completamente funcional, utilizando tecnologías servlet y JSP.

  • La Tienda On-Line
    • La base de datos
    • Aspecto visual
    • Estructura de directorios y ficheros
  • Las páginas de cabecera y pie
  • Las clases de Ayuda
    • El servlet DBInitServlet
    • El repositorio de conexiones
    • La clase MD5
    • La clase EnviaCorreo
  • El Patrón MVC
    • El Patrón de programación MVC (Modelo-Vista-Controlador)
    • El Servlet Controller
  • El Modelo
    • El JavaBean Productos
    • El JavaBean Categoria
  • La Vista
    • El Servlet Vista
    • El Servlet Cat
    • La Página JSP
  • Probar la página de Inicio
    • Situar los Ficheros fuente en su sitio
    • Compilar los Ficheros Fuente
    • Ejecutar la Aplicación
  • Navegar entre Categorías
    • Una página que nos muestre todas las categorías de las que disponemos en la tienda
    • El servlet Artics
    • La página JSP que muestra los artículos de una categoría
    • Compilar y Probar
  • Las Funcionalidades del Carrito
    • Guardar el Carrito
    • La página que muestra el carrito
    • Actualizar el Carrito
  • Tratar con los Usuarios
    • El bean User.java
    • Páginas JSP que trabajan con el Usuario
  • Realizar el Pedido
    • La página pedido.jsp
    • El Servlet Pedido
    • El Bean Pedidos.java
  • Llegó la hora de Pagar
    • El TPV para Linux
    • El TPV para Windows
    • Ponerlo en Práctica
    • Y con esto acabamos

Proyecto final: Administración de tienda online

Una vez creada la tienda online, se añadirá el sistema de administración, estudiando la estructura de la aplicación, centrandose en aspectos como la autentificación y la gestión de categorías, pedidos y productos.

  • Introducción
    • Estructura de la aplicación
    • Un paquete para empezar
    • El Servlet Controlador
    • El descriptor de Despliegue
    • La página de inicio
  • Autentificación
    • La especificación de Servlets 2.2
    • Modificar el fichero web.xml
    • Modificar el Fichero tomcat-users.xml
  • Administrar Categorías
    • Ver las Categorías
    • Borrar una Categoría
    • Editar Categorías
    • Añadir Categorías
  • Administrar Productos
    • Ver los Productos
    • Borrar un Producto
    • Editar Productos
    • Añadir Productos
  • Administrar Pedidos
    • Ver los Pedidos
    • Borrar un Pedido
    • Editar Pedidos
  • Ejecutar la Aplicación de Administración
    • Estructura de directorios de la aplicación
    • Compilar los Ficheros Fuente
    • Ejecutar la Aplicación

Apéndice: Trabajo con servidores diferentes

A modo de apéndice, se describe el trabajo con servidores alternativos a Tomcat, como BEA WebLogic Server e iPlanet WebServer.

  • Desplegar Aplicaciones en BEA WebLogic Server
    • Despliegue Dinámico
    • Usar la Consola de Administración para Desplegar Aplicaciones
  • Desplegar Aplicaciones en iPlanet WebServer
    • ¿Qué Necesita el Servidor para Ejecutar Servlets y JSPs
    • Activar Servlets y JSPs
    • Poner los JSPs a Disposición de los Clientes
    • Poner los Servlets a Disposición de los Clientes
    • Especificar Directorios de Servlets
    • Configurar Atributos Globales
    • Configurar Atributos de Servlets
    • Configuración de Paths Virtuales para Servlets
    • Configurar PAths JRE/JDK
    • Borrar Ficheros de Versión