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.

Continuar 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).
Continuar 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.

Continuar 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.
Continuar 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).
Continuar 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
Continuar leyendo «JTextArea con texto multilínea en Java»

Configurar acciones en Java con ActionListener

Ejecutar acciones sencillas al pulsar botones mediante la interface 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

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).
Continuar leyendo «Configurar acciones en Java con ActionListener»

JLabel con diseño personalizado en Java

Control JLabel en el que se configuran varios parámetros de diseño (alineación vertical y horizontal, color y tipo de borde y de letra) y se muestra texto con salto de línea utilizando código HTML

En este ejercicio se muestra una ventana muy simple que contiene:

  • 3 etiquetas en la parte superior, cada una con variaciones en su diseño
  • 1 botón conectado a una acción en la parte inferior
  • 2 etiquetas vacías a ambos lados del botón para contribuir a mantener la disposición (layout) de los elementos.
Continuar leyendo «JLabel con diseño personalizado en Java»

Uso de cadenas («strings») en Java

Manipulación de cadenas (‘strings‘) en Java y código de ejemplo

Un objeto de la clase String se crea a partir de literales (cadena de caracteres); Java crea un objeto String cuando encuentra una cadena entre comillas. Los String permiten operar con palabras y frases. No es tipo nativo de Java, existe la clase java.lang.String.
En Java sólo los tipos primitivos del lenguaje (byte, short, int, long, float, double, char, boolean) se comparan con ==, los Strings se comparan con el método equals que compara los caracteres que componen ambos String.

boolean B = cadena2.equals(cadena1);

Se puede crear un objeto String de 2 maneras:

String cadena = "Cadena";
String cadena = new String("Cadena");
Continuar leyendo «Uso de cadenas («strings») en Java»

Qué es la variable super en Java

Uso de la variable especial super que hace referencia a la superclase de la clase actual

La variable especial super refiere a la superclase de la clase actual. Cada objeto en Java contiene no sólo las variables de instancia de su clase sino también las de todas las clases superiores a ella. Estas variables de las superclases han de ser inicializadas antes que las variables de instancia de la propia clase. Esto se consigue llamando en el inicio del código al constructor de todas las superclases para inicializar sus campos.

Cuando se declara una clase heredando explícitamente de otra como en el código siguiente:

public class Subclase extends Superclase {
Continuar leyendo «Qué es la variable super en Java»