En mi intento de coger el gusto al Java, y
mira que le pongo ganas, sigo con un anterior programa realizado
para android, androj.html .
Este programa es una especie de base de datos que busca los
municipios de España.
El fichero con la base de datos de municipios se llama municipios0.txt
que se incluye en el propio programa dentro de la carpeta de
recursos internos llamada datos.
En esta carpeta interna datos, incluyo también un icono de
representación del programa, y un fondo para que quede más estético
el programa.
Al no saber mucho de Java, y provenir de C o Basic, el manejo de
ficheros se hace de lo mas lioso.
En Java necesitas abrir un descriptor de ficheros FileReader
, y un BufferedReader . En C con openFile vale, se pensarán
los diseñadores de Java que los sistemas operativos no tienen como
mínimo dos buffer para que el acceso sea rápido, además de el de el
propio disco.
También te obligan a comprobar con try que la operación no
tuvo errores.
Otras de las sorpresas que tuve y que me llevo tiempo encontrar el
error fue la función substring.
Esta función extrae un trozo de una cadena, en mi caso era xtmp=tmp.substring(0,25);
, para que los campos largos me los acortara.
El problema era que unas veces me funcionaba y otras no. Estuve
tiempo hasta que descubrí que no comprobaba el tamaño de la cadena
de origen. Entonces para que sirven los String, si en cosas como
esta no comprueban el tamaño.
Tuve que solucionarlo con: int z=tmp.length();
if(z>25) z=25;
xtmp=tmp.substring(0,z); .
Creo a mi parecer que en Java se complican demasiado utilizando para
todo herencias y clases. Pero esto es lo que hay.
Pero dejémonos de quejas sobre Java y continuemos.
He realizado dos programas que hacen lo mismo.
El primero utiliza referencias para colocar los diferentes elementos
gráficos en la ventana principal.
El segundo utiliza coordenadas absolutas para colocar los elementos
gráficos. Esto es debido a que quería colocar un fondo en la
aplicación para que quedara más estética. También implica
utilizar absolutelayout que debes incluir en el programa.
El botón de Maps solo funciona en Linux, debido a que abre
el navegador firefox con la coordenadas, en Windows se podrá hacer,
pero lo he dejado como tarea para otros.
Normal.
Con absolutelayout y fondo.
Está realizado en Debian9_32bits comprobado en Windows10_64bits ,
Windows7_32bits, WindowsXP y Debian10 64bits, .