JAVA_HOME en Windows 10

Configurar las variables de entorno para que Windows 10 ejecute correctamente los programas Java, tanto para compilarlos (javac.exe) como para ejecutarlos (java.exe); este artículo aplica a Windows 10 y JDK 8 (Java Development Kit)

Después de instalar JDK en Windows 10 es posible que los ejecutables de Java no sean reconocidos desde la línea de comandos a pesar de que la instalación del JDK añade a la variable de entorno de sistema PATH el valor
C:Program Files (x86)Common FilesOracleJavajavapath.

Para solucionarlo hay que decirle al sistema dónde están los ejecutables de Java. Esto se consigue en 2 pasos bastante sencillos que configuran la variable de entorno JAVA_HOME.

Sigue leyendo “JAVA_HOME en Windows 10”

Microsoft Access en Java con Ucanaccess de 64 bits (2)

Conectar con una base de datos de Microsoft Access mediante el controlador JDBC UCanAccess, emitir sentencias SQL a la base de datos y mostrar los resultados, ejecutar el programa desde línea de comandos junto con las dependencias, crear archivos de comando para ejecutar el programa; ejercicio de Java para consola

Desde Java 8 la conexión JDBC-ODBC ya no se incluye en Java. Existen algunos controladores JDBC propietarios para conectar con MS Access pero el proyecto UCanAccess está activo actualmente, es open source y proporciona un controlador JDBC generado sobre código de Jackcess.
UCanAccess funciona bien y es sencillo de utilizar. El dato más remarcable es el de las dependencias que requiere que en la versión actual 4.0.1 son: ucanaccess-4.0.1, hsqldb-2.3.1, jackcess-2.1.6, commons-logging-1.1.1 y commons-lang-2.6.

Jackcess a diferencia de UCanAccess es una librería de código Java diseñada para leer y escribir bases de datos de MS Access que no es un controlador JDBC sino una implementación directa de las características disponibles para interactuar con bases de datos de MS Access. Su licencia es del tipo Apache License.

Sigue leyendo “Microsoft Access en Java con Ucanaccess de 64 bits (2)”

Microsoft Access en Java con puente ODBC de 32 bits (1)

Conectar con una base de datos de Microsoft Access por medio del puente JDBC-ODBC configurando el origen de los datos en el panel de control ODBC de 32 bits mostrando los registros obtenidos desde consultas SQL con Java 7

Requisitos previos

El puente JDBC-ODBC ha dejado de estar disponible en Java 8 por lo que para poder utilizarlo hay que tener Java 7 o versión anterior. Aunque se trata de un método obsoleto y poco eficiente de acceder a bases de datos de Microsoft Access desde Java, todavía hay usuarios que lo utilizan y que no desean migrar sus programas a controladores propios del lenguaje, libres (ucanaccess, jackcess…) o comerciales.

En Windows 10 están disponibles en las herramientas administrativas los paneles de control ODBC. Hay 2 versiones, para 32 y para 64 bits. Microsoft Access usa un controlador de 32 bits por lo que se necesita instalar Java 7 para 32 bits y abrir el panel ODBC de 32 bits, sin estos 2 requisitos falla el acceso a las bases de datos (BD) desde Java por este método. El panel ODBC se puede encontrar en las herramientas administrativas o tecleando en el menú Inicio > Buscar “Orígenes de datos…” que muestra las 2 opciones:

  • Orígenes de datos ODBC (32 bits)
  • Orígenes de datos ODBC (64 bits).
Sigue leyendo “Microsoft Access en Java con puente ODBC de 32 bits (1)”

Mostrar fotos desde botones en Java

Mostrar imágenes al pulsar botones en una ventana JFrame que implementa la interfaz ActionListener, detectar la pulsación del botón como un evento de acción (ActionEvent) y llamar a la acción prevista con el método actionPerformed,en Java

Introducción: responder a las acciones del usuario

Las aplicaciones han de responder a las acciones que realiza el usuario, por ejemplo: cerrar la ventana al pulsar un botón. Es necesario poder detectar las acciones de usuario y convertirlas en acciones de programa. Java dispone de varias formas de implementar este funcionamiento. En este ejercicio se mostrarán algunas de ellas. Todas se basan en el uso de Interfaces. Las Interfaces son clases “prefabricadas” con propósitos definidos
Cada Interface contiene declaraciones de métodos (nombre del método, lista de argumentos y tipo de retorno) pero estos métodos no están implementados (carecen de cuerpo) y deben ser desarrollados. Todos los métodos de las Interfaces son public. Las Interfaces también pueden declarar constantes (public final static).
En Java no existe la herencia múltiple como tal: una clase no puede heredar (extends) de más de una clase. Pero una clase puede implementar más de una Interface, ésta es una manera de tener herencia múltiple. En la clase que implementa una Interface han de ser sobrescritos (override) todos los métodos declarados en la Interface.

Sigue leyendo “Mostrar fotos desde botones en Java”

Cambiar el aspecto LookAndFeel en Java

Cambiar la decoración LookAndFeel de un programa Java eligiendo entre 3 opciones: Nimbus, Metal y Motif, utilizando el método setLookAndFeel de la clase UIManager

Java permite modificar el aspecto de sus ventanas y cuadros de diálogo. Se definen 3 decoraciones básicas que son:

  • Metal: decoración que se adapta al sistema operativo, por ejemplo en Windows su aspecto se basa en ese sistema y en macOS su aspecto es Aqua
  • Nimbus: decoración más moderna y elegante, aparecida en Java 6
  • Motif: decoración más ruda que era la que se usaba por defecto en sistemas Unix.
Sigue leyendo “Cambiar el aspecto LookAndFeel en Java”

Ejecutar Archivos JAR con doble clic en Windows 10

Crear archivos JAR desde línea de comandos. Archivos JAR ejecutables y no ejecutables. Ejecutar un archivo JAR desde línea de comandos. Configurar la asociación del tipo de archivo JAR para que se ejecute correctamente con doble clic en Windows. Acceder a imágenes y otros recursos almacenados en un archivo JAR

Comprimir y empaquetar ficheros en un archivo JAR no ejecutable

Comprimir y empaquetar ficheros en un archivo JAR:

jar -cf archivo.jar archivo1 archivo2 archivo3
  • jar: comando para ejecutar la utilidad jar
  • c: crea un archivo nuevo
  • f: especifica el nombre del archivo
  • v: da información detallada (opcional).
Sigue leyendo “Ejecutar Archivos JAR con doble clic en Windows 10”

JTextArea con texto multilínea en Java

JTextArea en Java para campos de texto con varias líneas en contraposición a JTextField que sólo admite 1 línea; añadir líneas desde JTextField a JTextArea y vaciar el campo de texto

JTextField es un componente que muestra una sola línea de texto, en cambio JTextArea muestra múltiples líneas de texto. Ambos componentes muestran todo el texto en el mismo formato (fuente, color…), sin embargo, es factible modificar esos parámetros en lugar de los que Java implementa por defecto.

Para crear un objeto JTextArea se pueden emplear varios constructores:

TextArea texto = new JTextArea(); //sin parametros
JTextArea texto = new JTextArea(10,40); //numero de filas y columnas
JTextArea texto = new JTextArea( "Texto dentro de JTextArea" ); //cadena de texto
Sigue leyendo “JTextArea con texto multilínea en Java”