Artículos de Java
ARTÍCULOS DISPONIBLES
- 1. FAQ General de Java
- 1.1. Conceptos fundamentales
- ¿Qué es Java Web Start?
- ¿Qué es Java?
- ¿Qué es un descompilador?
- ¿Qué es un ofuscador?
- ¿Qué son el JRE, el JDK y el SDK ?
- Cómo saber la versión de la JVM instalada
- Convenciones de nomenclatura en Java
- Dónde encontrar los fuentes de las clases del API de Sun
- Diferencias entre Application, Applet y Servlet
- 1.1.1. Palabras clave
- 1.1.2. Nociones
- 1.2. El lenguaje
- 1.2.1. Tratamiento de cadenas
- 1.2.2. Tipos de dato y conversiones
- APIs para relizar operaciones matemáticas
- Convertir char en ASCII
- Convertir Date a String y viceversa
- Convertir de String a tipos primitivos
- Convertir String en Vector a partir de un delimitador
- Convertir tipos primitivos en String
- Convertir un número entero decimal en una cadena representando el número en otra base
- Convertir un número a una cadena formateada
- Convertir una cadena a fecha
- Convertir una cadena que representa un entero en cualquier base a un entero decimal
- Convertir una fecha a una cadena
- Hacer cálculos precisos con floats o doubles
- Redondear un número
- 1.2.3. Gestión de fechas
- 1.2.4. Gestión de Threads
- 1.2.5. Estructuras de datos - tablas y collections
- ArrayList, LinkedList y Vector
- Aumentar el tamaño de una tabla
- Cómo determinar si un objeto es una tabla
- Crear una pila (LIFO)
- Determinar el número de dimensiones de una tabla
- Diferentes tipos de Map
- HashSet, TreeSet y LinkedHashSet
- Ordenar una List (ArrayList, Vector, ...) o una tabla
- Recorrer todos los elementos de una tabla
- Uso de las Collections
- 1.2.6. Paquete reflect
- [Java 5.0] Obtener las annotations de un objeto
- Acceder dinámicamente al valor de un campo dado de un objeto
- Consultar o modificar el valor de un campo privado
- Ejecutar de forma dinámica un método de un objeto dado
- Ejecutar dinámicamente el método de una clase dada
- Obtener el conjunto de interfaces que implementa una clase
- Obtener el paquete en el que se encuentra una clase
- Obtener la firma de un método
- Obtener la información referente a un campo
- Obtener la lista de campos de una clase
- Obtener la lista de campos y métodos privados y protegidos de una clase
- Obtener las clases de la que hereda una clase en concreto
- Obtener los métodos de una clase
- Para qué sirve y cómo usarlo
- Pasar los tipos primitivos como parámetros usando la reflexividad
- Saber si un método o un campo es de la clase
- 1.2.7. De C++ a Java
- 1.3. Ficheros y redes
- 1.3.1. Ficheros
- Borrar un fichero o un directorio
- Cambiar la codificación de la salida estándar
- Cambiar la codificación de un fichero de texto
- Cargar un recurso del CLASSPATH
- Copiar o mover un fichero
- Crear un fichero temporal
- Escribir al final de un fichero
- Indicar la posición de un fichero conservando la portabilidad
- Leer la información de la entrada estándar
- Obtener el espacio libre en disco
- Obtener el tipo MIME de un fichero
- Obtener la fecha de creación de un fichero
- Obtener la raiz del árbol de ficheros
- Obtener los Charset disponibles y sus alias
- Recorrer el árbol de ficheros
- Renombrar / mover un fichero
- 1.3.2. Formato XML
- 1.3.2.1. General
- ¿Dónde encontrar más información sobre XML?
- ¿Qué es JAXP?
- Buscar un DTD en el CLASSPATH (SAX y DOM)
- Cambiar el parser XML o el procesador XSLT
- Manipulación de XML en Java
- No tengo el último JDK. ¿Cómo puedo acceder a todas las funcionalidades del JAXP?
- Otras APIs para XML
- Otras funcionalidades accesibles con JAXP
- Parser XML y procesadores XSLT usados por JAXP RI
- Relación entre las versiones de JAXP y las especificaciones XML
- SAX, DOM y XSLT
- 1.3.2.2. SAX
- 1.3.2.4. XSLT
- Crear o modificar un fichero XML con DOM y XSLT
- Crear o modificar un fichero XML con SAX y XSLT
- Crear un fichero HTML a partir de un XML
- Crear un fichero PDF a partir de un XML
- Crear y configurar un Transformer (para SAX y DOM)
- Encadenar las transformaciones XSLT
- Funcionamiento del API XSLT
- Gestionar los errores durante la transformación
- Templates creados por TransformerFactory
- 1.3.2.5. XPath
- ¿Cómo usar los Namespace con XPath?
- ¿Dónde encontrar información sobre XPath?
- ¿Qué es XPath y para qué sirve?
- ¿Qué hace exactamente el método evaluate?
- Funcionamiento del package javax.xml.xpath
- Obtener una XPathExpression
- Recuperar un boolean a partir de una expresión XPath
- Recuperar un conjunto de nodos con XPath
- Recuperar un número a partir de una expresión XPath
- Recuperar un Node con XPath
- Recuperar una cadena de carácteres con XPath
- Trabajar con XPath sin tener Java 5.0
- 2.3.2.3. DOM
- Abrir un fichero XML con DOM
- Acceder al contenido y a los atributos de un Element
- Convertir un XML DOM en String
- Crear un DOM
- Funcionamiento del API DOM
- Gestionar los errores durante la creación de un DOM
- Información que podemos recuperar de DOM
- Modificar un DOM (Document, Node y Element)
- Recorrer un árbol DOM
- Saber el nombre de hijos de un Element
- Tipos de nodos
- 1.3.2.1. General
- 1.3.3. Redes
- 1.3.4. Serialización
- 1.3.1. Ficheros
- 1.4. Interfaz gráfica
- 1.4.1. Ventanas y posicionamiento de componentes
- Abrir una ventana en una pantalla en particular
- Aplicación a pantalla completa
- Cambiar el icono de la ventana de mi aplicación
- Centrar la ventana en pantalla
- Centrar vertical y horizontalmente un componente
- Cerrar una ventana con un clic en la cruz de la esquina superior derecha
- Diferencia entre ocultar y destruir una ventana
- Hacer una ventana sin barra de título
- Minimizar o maximizar una ventana
- Obtener el tamaño de la pantalla
- Obtener la lista de pantallas
- Poner una ventana siempre en primer plano
- Posicionar los componentes en un contenedor
- Uso del BorderLayout
- Uso del BoxLayout
- Uso del FlowLayout
- Uso del GridBagLayout
- Uso del GridLayout
- 1.4.2. Ratón y teclado
- [Java 5.0] Obtener el número de botones del ratón
- Cambiar el cursor
- Cargar cursores personalizados .cur o .ani
- Desplazar el ratón de forma automática
- Detectar qué botón del ratón se ha pulsado
- Obtener la posición del cursor en pantalla
- Tratar de forma exclusiva los clic simples y los dobles
- Tratar el doble clic en un MouseListener
- 1.4.3. Dibujado y diseño
- Accelerar el rendimiento gráfico de mi dibujo
- Activar el suavizado del texto y/o del dibujado
- ¿Por qué se borra mi componente al redimensionar la ventana?
- Conocer la medida de la imagen de un texto
- Dibujar en Java
- Dibujar o escribir con transparencia
- Escribir texto en una imagen
- Hacer una línea gruesa o punteada
- Rellenar una figura con un degradado o una textura
- Uso del double-buffering hardware
- Uso del double-buffering software
- Uso del triple-buffering hardware
- 1.4.4. Las Imágenes
- Acceder a una imagen
- Codificación RGBA de los colores
- Convertir una imagen en color a una con escala de grises
- Convertir una imagen en una instancia de BufferedImage
- Crear un objeto Image des de un BufferedImage
- Dibujar y escribir en un BufferedImage
- Grabar una imagen
- Hacer borrosa una imagen
- Hacer transfromaciones en una imagen en memoria
- Hacer una captura de pantalla
- Manipular directamente los pxels de una imagen
- Obtener los tipos de imágenes que podemos leer o escribir
- Obtener un Image de un componente gráfico
- Poner una imagen de fondo en un JFrame
- Redimensionar una imagen
- Saber si una imagen tiene pxels transparentes
- 1.4.5. AWT y Swing
- 1.4.5.1. General
- Awt y Swing
- ¿Es posible mezclar Awt y Swing?
- ¿Por qué la barra de progreso se rellena de una sola vez?
- Cambiar el aspecto a la aplicación (look & feel)
- Definir la acción por defecto para las teclas ENTER y ESCAPE
- Evitar que "se congele" la aplicación
- Hacer un JButton transparente
- Listar los look & feel disponibles
- Poner una imagen en un botón con Awt
- Qué hacer si el menú contextual se sale de la pantalla
- 1.4.5.2. JFileChooser
- 1.4.5.3. Componentes de texto
- 1.4.5.4. Tablas y árboles (JTable et JTree)
- 1.4.5.1. General
- 1.4.6. Applets
- Abrir una nueva página HTML
- Algunos métodos del JDK piden un Frame, pero Applet no hereda de Frame, ¿Qué hacer?
- Comunicar dos applets
- Firmar un applet
- Mostrar algo en la barra de estado del navegador
- Qué hacer si el applet no funciona con un pluggin Java
- Recuperar los parámetros de una página HTML en el applet
- Reproducir un sonido en un applet
- 1.4.1. Ventanas y posicionamiento de componentes
- 1.5. Desarrollo
- 1.5.1. Instalación y compilación
- 1.5.2. Ejecución
- 1.5.3. Errores y excepciones
- 1.5.4. Warnings
- [Java 5.0] Des/Activar los warnings con javac
- [Java 5.0] finally : "finally clause cannot complete normally"
- [Java 5.0] path : "bad path element"
- [Java 5.0] serial : "serializable class Main has no definition of serialVersionUID"
- [Java 5.0] unchecked : "uses unchecked or unsafe operations"
- deprecation : "uses or overrides a deprecated API"
- fallthrough : "possible fall-through into case"
- 1.6. Sistema
- Abrir un fichero con el programa asociado sin perder la portabilidad
- Abrir una página web con el navegador por defecto manteniendo la portabilidad
- Ejecutar una aplicación externa
- Ejecutar una aplicación sin el terminal (sólo Windows)
- Leer/escribir texto en el portapapeles
- Leer/escribir una imagen en el portapapeles
- Obtener el directorio del jar donde está mi clase
- Obtener el sistema operativo
- Obtener la memoria usada de la tarjeta de vdeo
- Variables de entorno
- 1.7. Varios
- Anular la construcción de un objeto en el momento de su construcción
- ¿Qué es un singleton?
- Crear nuestro propio Listener
- Dónde encontrar información sobre JavaMail
- Determinar el tiempo pasado entre dos puntos de un programa
- Forzar la ejecución del 'Garbage collector'
- Gestionar las preferencias del usuario
- Hacer que un parámetro Int de un método sea de salida (pasado "por referencia")
- Leer y gestionar documentos con formatos específicos (pdf, rtf, html, doc,...)
- Poner la aplicación en el "SysTray"
- Usar una fuente True Type donde sea
- 1.1. Conceptos fundamentales
- 2. F.A.Q J2EE
- 2.1. Definiciones y API J2EE
- 2.2. Generalidades de aplicaciones web
- 2.3. Servlets
- ¿Por qué un servlet no tiene constructor?
- Crear un objeto Session
- Descargar un fichero desde un servlet
- Diferencias entre doGet() y doPost()
- Gestión de las sesiones
- Obtener la versión del API servlet usada por el motor del servlet
- Poner y recuperar un parámetro de inicialización de un servlet
- Subir un fichero desde un applet hacia un servlet
- Utilidad de las sesiones
- 2.4. JSP (Java Server Pages)
- 2.4.1. Generalidades
- 2.4.2. TagLibs JSP
- Crear un tag condicional
- Crear un tag iterativo
- Definir/modificar variables de script en un Tag
- Escribir los descriptores de taglib (TLD)
- Escribir un Tag
- Gestionar las excepciones de un tag
- Hacer el mapping entre el nombre de etiqueta y una clase Tag
- Interactuar con el contenido de un tag
- Modificar el cuerpo de un tag
- Usar una librería tag (taglib)
- Uso de los atributos de etiqueta
- Validar los atributos de un tag con TagExtraInfo
- 2.5. Varios
- 3. F.A.Q J2ME
- 3.1. Definiciones
- 3.2. CLDC
- 3.3. J2ME Wireless Toolkit
- 4. F.A.Q Struts
- 4.1. Configuración de la aplicación web
- Cambiar el nombre o el lugar de emplazamiento del fichero struts-config.xml
- Configurar el servlet ActionServlet en el fichero web.xml
- Configurar los ficheros de bienvenida
- Configurar los taglibs de Struts para la aplicación web
- Declarar el fichero de configuración de un módulo Struts
- Usar varios ficheros de configuración para un módulo Struts
- 4.2. Biblioteca de tags
- 4.3. Configuración de la applicación Struts
- 4.3.1. Los ActionForms
- 4.3.2. Excepciones
- 4.3.3. Datasources
- 4.3.4. Varios
- 4.4. I18N
- Cambiar de idioma según demanda con Struts
- Cargar varios ficheros de recursos (bundles) sin necesidad de usar las llaves de los bundles
- Definir los ficheros de localización fuera del classpath
- Formatear un valor de un bean con Struts: los attributos "format" y "formatkey"
- Gestionar la internacionalización (I18N) y/o la localización con Struts: El ResourceBundle
- 4.5. Formularios
- Factorizar varias actions realizables en un sólo ActionForm: el DispatchAction
- Factorizar varias actions realizables sin JavaScript: el LookupDispatchAction
- 4.5.1. Validación
- Combinar la validación del Validator y el método validate() de un formulario
- Definir uno mismo el nombre de la función de validación javascript
- Validación de datos con el método validate() de la ActionForm
- Validación de datos con el plug-in Validator de Struts
- Validar los datos de un formulario con Struts
- 4.5.2. Checkbox
- 4.5.3. Listas
- 4.5.4. Ficheros
- 4.6. Enlaces (urls)
- 4.7. Errores
- 4.8. Mensajes
- 4.9. DataSource
- 4.10. Seguridad
- 4.11. Plug-ins
- 4.12. Trucos
- 4.1. Configuración de la aplicación web
- 5. F.A.Q JDBC
- 5.1. Introducción
- 5.2. Drivers
- ¿Cómo cargar un driver?
- ¿Dónde encontrar drivers?
- ¿Qué driver(s) usar?
- ¿Qué es un driver?
- Conocer los drivers disponibles a partir de una aplicación
- Definir el tiempo de espera para una conexión
- Obtener información de un driver dado des de una aplicación
- Redirigir los logs del DriverManager
- Tipos de drivers JDBC
- 5.3. La conexión
- 5.4. DataSources
- 5.5. Statement
- 5.5.1. Generalidades
- 5.5.2. PreparedStatement
- 5.5.3. CallableStatement
- 5.6. ResultSet
- 6. F.A.Q Eclipse
- 7. F.A.Q NetBeans