Java2
incluye Swing, Threads, programacin en red, JavaBeans, JDBC y JSP / Servlets
Autor: Jorge Snchez (www.jorgesanchez.net) ao 2004 Basado en el lenguaje Java definido por Sun (http://java.sun.com)
ndice
introduccin ...................................................................................................... 1
historia de Java............................................................................................................................... 1 caractersticas de Java..................................................................................................................... 3 empezar a trabajar con Java............................................................................................................ 5 escritura de programas Java ............................................................................................................ 8 instruccin import ......................................................................................................................... 14
variables ......................................................................................................... 15
introduccin ................................................................................................................................. 15 declaracin de variables................................................................................................................ 15 alcance o mbito .......................................................................................................................... 15 tipos de datos primitivos ................................................................................................................ 16 operadores................................................................................................................................... 18
estructuras de control del flujo ....................................................................... 25
if ................................................................................................................................................. 25 switch........................................................................................................................................... 25 while............................................................................................................................................ 27 do while ....................................................................................................................................... 28 for ............................................................................................................................................... 28 sentencias de salida de un bucle .................................................................................................... 28
arrays y cadenas............................................................................................. 31
arrays .......................................................................................................................................... 31 clase String................................................................................................................................... 35
objetos y clases ............................................................................................... 41
programacin orientada a objetos ................................................................................................. 41 propiedades de la POO ................................................................................................................ 41 introduccin al concepto de objeto ................................................................................................ 42 clases........................................................................................................................................... 42 objetos......................................................................................................................................... 44 especificadores de acceso ............................................................................................................. 45 creacin de clases......................................................................................................................... 46 mtodos y propiedades genricos (static) ........................................................................................ 53 el mtodo main ............................................................................................................................ 54 destruccin de objetos................................................................................................................... 55 herencia....................................................................................................................................... 57 clases abstractas ........................................................................................................................... 62 final ............................................................................................................................................. 62 clases internas .............................................................................................................................. 63 interfaces ..................................................................................................................................... 64 creacin de paquetes .................................................................................................................... 67
reutilizacin de clases..................................................................................... 57
Manual de Java
ndice
excepciones ..................................................................................................... 71
introduccin a las excepciones....................................................................................................... 71 try y catch ..................................................................................................................................... 71 manejo de excepciones ................................................................................................................. 73 throws.......................................................................................................................................... 74 throw ........................................................................................................................................... 75 finally ........................................................................................................................................... 75
clases fundamentales (I)................................................................................. 77
la clase Object ............................................................................................................................. 77 clase Class ................................................................................................................................... 79 reflexin ....................................................................................................................................... 82 clases para tipos bsicos ............................................................................................................... 84 clase StringBuffer .......................................................................................................................... 85 nmeros aleatorios ....................................................................................................................... 86 fechas .......................................................................................................................................... 87 cadenas delimitadas. StringTokenizer .............................................................................................. 92
entrada y salida en Java................................................................................ 93
clases para la entrada y la salida ................................................................................................... 93 entrada y salida estndar............................................................................................................... 96
Ficheros ........................................................................................................... 99
clase File...................................................................................................................................... 99 secuencias de archivo ................................................................................................................. 102 RandomAccessFile ...................................................................................................................... 106 el administrador de seguridad...................................................................................................... 107 serializacin ............................................................................................................................... 107
clases fundamentales (II) colecciones .......................................................... 109
estructuras estticas de datos y estructuras dinmicas .................................................................... 109 interfaz Collection ....................................................................................................................... 110 Listas enlazadas .......................................................................................................................... 111 colecciones sin duplicados........................................................................................................... 112 rboles. SortedSet ....................................................................................................................... 113 mapas ....................................................................................................................................... 114 colecciones de la versin 1.0 y 1.1 .............................................................................................. 114 la clase Collections ..................................................................................................................... 117
clases fundamentales (y III).......................................................................... 119
nmeros grandes ........................................................................................................................ 119 internacionalizacin. clase Locale................................................................................................. 122 formatos numricos..................................................................................................................... 124 Propiedades ............................................................................................................................... 125 temporizador .............................................................................................................................. 127
Jorge Snchez Asenjo 2004
Swing............................................................................................................. 129
AWT y Swing .............................................................................................................................. 129 componentes.............................................................................................................................. 129 Contenedores............................................................................................................................. 135 eventos ...................................................................................................................................... 139 mensajes hacia el usuario. clase JOptionPane............................................................................... 156 Java2D ...................................................................................................................................... 160 paneles de dibujo ....................................................................................................................... 160 clases de dibujo y contextos grficos............................................................................................. 164 representacin de grficos con Java 2D........................................................................................ 166 formas 2D.................................................................................................................................. 167 reas ......................................................................................................................................... 172 trazos......................................................................................................................................... 173 pintura ....................................................................................................................................... 174 transformaciones ........................................................................................................................ 175 recorte ....................................................................................................................................... 177 composicin............................................................................................................................... 177 fuentes ....................................................................................................................................... 178 imgenes de mapas de bits.......................................................................................................... 183
Programacin de grficos. Java2D .............................................................. 160
Threads ......................................................................................................... 185
Introduccin ............................................................................................................................... 185 clase Thread y la interfaz Runnable ............................................................................................... 185 creacin de threads..................................................................................................................... 186 control de Threads ...................................................................................................................... 188 estados de un thread ................................................................................................................... 189 sincronizacin............................................................................................................................. 190
componentes Swing ...................................................................................... 193
introduccin ............................................................................................................................... 193 administracin de diseo ............................................................................................................. 193 apariencia.................................................................................................................................. 201 etiquetas .................................................................................................................................... 203 cuadros de texto ......................................................................................................................... 206 cuadros de contrasea ................................................................................................................ 208 botones...................................................................................................................................... 208 eventos ActionEvent..................................................................................................................... 210 casillas de activacin................................................................................................................... 211 botones de opcin ...................................................................................................................... 212 viewport ..................................................................................................................................... 214 JScrollPane................................................................................................................................. 215 Barras de desplazamiento............................................................................................................ 216 deslizadores ............................................................................................................................... 218 listas .......................................................................................................................................... 220 cuadros combinados ................................................................................................................... 223 cuadros de dilogo Swing ........................................................................................................... 225
Manual de Java
ndice
applets .......................................................................................................... 233
introduccin ............................................................................................................................... 233 mtodos de una applet................................................................................................................ 235 la etiqueta applet ........................................................................................................................ 237 parmetros................................................................................................................................. 238 manejar el navegador desde la applet.......................................................................................... 239 paquetes .................................................................................................................................... 240 archivos JAR ............................................................................................................................... 240 el administrador de seguridad...................................................................................................... 242
programacin en red.................................................................................... 245
introduccin ............................................................................................................................... 245 sockets....................................................................................................................................... 245 clientes ...................................................................................................................................... 245 servidores................................................................................................................................... 247 mtodos de Socket...................................................................................................................... 249 clase InetAddress ........................................................................................................................ 250 conexiones URL .......................................................................................................................... 251 JEditorPane ................................................................................................................................ 253 conexiones URLConnection.......................................................................................................... 255
JDBC .............................................................................................................. 259
introduccin ............................................................................................................................... 259 conexin .................................................................................................................................... 262 ejecucin de comandos SQL. interfaz Statement ............................................................................ 263 Excepciones en la base de datos .................................................................................................. 265 resultados con posibilidades de desplazamiento y actualizacin. JDBC 2.0...................................... 266 metadatos .................................................................................................................................. 269 proceso por lotes ........................................................................................................................ 276
Servlets y JSP ................................................................................................ 277
tecnologas del lado del servidor .................................................................................................. 277 J2EE .......................................................................................................................................... 280 empaquetamiento de las aplicaciones web ................................................................................... 280 http............................................................................................................................................ 281 Servlets ...................................................................................................................................... 283 JSP ............................................................................................................................................ 293 colaboracin entre Servlets y/o JSPs ............................................................................................. 299
JavaBeans..................................................................................................... 305
introduccin ............................................................................................................................... 305 empaquetamiento de JavaBeans .................................................................................................. 306 propiedades de los JavaBeans ..................................................................................................... 307
introduccin
historia de Java los antecedentes de Java
Java es un lenguaje de programacin creado para satisfacer una necesidad de la poca (as aparecen todos los lenguajes) planteada por nuevos requerimientos hacia los lenguajes existentes. Antes de la aparicin de Java, existan otros importantes lenguajes (muchos se utilizan todava). Entre ellos el lenguaje C era probablemente el ms popular debido a su versatilidad; contiene posibilidades semejantes a programar en ensamblador, pero con las comodidades de los lenguajes de alto nivel. Uno de los principales problemas del lenguaje C (como el de otros muchos lenguajes) era que cuando la aplicacin creca, el cdigo era muy difcil de manejar. Las tcnicas de programacin estructurada y programacin modular, paliaban algo el problema. Pero fue la programacin orientada a objetos (POO u OOP) la que mejor notablemente el situacin. La POO permite fabricar programas de forma ms parecida al pensamiento humano. de hecho simplifica el problema dividindolo en objetos y permitiendo centrarse en cada objeto, para de esa forma eliminar la complejidad. Cada objeto se programa de forma autnoma y esa es la principal virtud. Al aparecer la programacin orientada a objetos (en los ochenta), aparecieron varios lenguajes orientados a objetos y tambin se realizaron versiones orientadas a objetos (o semiorientadas a objetos) de lenguajes clsicos. Una de las ms famosas fue el lenguaje orientado a objetos creado a partir del C tradicional. Se le llam C++ indicando con esa simbologa que era un incremento del lenguaje C (en el lenguaje C, como en Java, los smbolos ++ significan incrementar). Las ventajas que aadi C++ al C fueron: