Java – Un resumen organizado….o no.

Llevo escribiendo artículos sobre Java, programación  de Java, entorno de Java… demasiado tiempo, y como ahora estoy preparando un curso de dicho tema, se me ha ocurrido hacer una especie de indice de lo que llevo publicado para que tanto vosotros como yo, podamos acudir a un tema concreto. Esto también me ha permitido detectar duplicados y faltas, por lo que deberé seguir ampliando la colección…. en cuanto pueda, incluso darle formato de libro…..ya veremos; de momento os dejo este indice Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

PHP – Presentacion del curso

Mucho tiempo ha pasado desde que en 1994 se le ocurrió a Rasmus Lerdof “inventar” un lenguaje para la creación de sitios webs dinámicos, y como era una especie de pequeña herramienta para construir HTML, lo llamo PHP (PHP Hipertext preprocesor), y supongo que no llego a pensar en la importancia que tendria unos años mas tarde ese lenguaje. Pero aquí estamos, y hoy nos costaría mucho imaginarnos la web sin su existencia. Cierto es que hay otros lenguajes de servidor, pero PHP es el mas barato y, hoy por hoy el mas extendido, de forma que vamos a ver como se escribe un programa en él. Sigue leyendo

Publicado en Desarrollo Web, PHP y MySQL/MariaDB | 2 comentarios

Tu máquina de desarrollo. Instalando LAMP

Días atrás, os explicaba como instalar un servidor web en vuestra maquina de desarrollo bajo windows. Como poco a poco Linux penetra en nuestro mundo, hoy os comento como instalar un servidor web en vuestra maquina Linux: LAMP. Sigue leyendo

Publicado en Desarrollo Web, Linux | Etiquetado , , , , , | 1 comentario

HTML5 – Presentacion

Desde 1998 en que finaliza el desarrollo de HTML (4.0) han venido sucediéndose una serie de operaciones para establecer un nuevo estándar web. El XML primero, y su consecuente XHTML fue una buena apuesta, pero su posible sucesor el XHTML 2.0, cuyo desarrollo se abandona a finales del 2009, fue un fracaso. Eso obliga al W3C a buscar un nuevo camino, y lo encuentra retomando un trabajo iniciado por WHATWG  (Mozilla, Opera, Apple, Google…) sobre 2004 como variante a la linea de W3C.

Con todo ello, se anuncia en 2012 la recomendación candidata de Html5 y se prevee para 2020 la recomendación final.

En el curso que empezamos hoy, vamos a explicar que es HTML5HTML5_logo_and_wordmark.svg Sigue leyendo

Publicado en HTML5 | Etiquetado , | 1 comentario

Monta tu propio WordPress….y gratis

Si estáis decididos a probar suerte como webmaster con todas sus consecuencias, os invito a que probeis a instalar un wordpress en tu propio servidor. WordPress es gratuito, luego, si eso lo combinamos con un hosting gratuito…tendremos una interesante plataforma para aprender. Sigue leyendo

Publicado en Desarrollo Web, Divulgacion, Empezando en, WordPress | 3 comentarios

Macros de Excel

Con éste artículo, iniciamos una colección dedicada a la utilización de las hojas de cálculo de Microsoft Excel, y, más concretamente, a la forma que tiene este producto de solucionar y simplificar las tareas repetitivas. Debido a que estos artículos los voy escribiendo a medida que me surge la necesidad, he empezado por una parte de la formación Excel, bastante avanzada, sin embargo, y debido que su aprendizaje tiene mucho mas que ver con la programación que con Excel, pienso que se puede aprender de forma paralela a cualquier otro curso de Excel medio, y ya dejo claro que me comprometo a escribirlo… algún día. Que sea mas pronto o mas tarde, dependerá del trabajo, y de las necesidades de los lectores.

Sigue leyendo

Publicado en Excel, Formacion | Etiquetado , , | Deja un comentario

Java para programadores (10.3) Bases de datos

Cuando salimos  de entornos propietarios como puede ser Acces, entramos en el gran mundo de las bases de datos, Oracle, MySQL, MsSQL son motores que están a nuestro alcance; y si queremos utilizarlos, debemos saber algunas cosas.

Sigue leyendo

Publicado en Formacion, Java, SQL | Etiquetado , , | Deja un comentario

Trabajando con Bases de Datos

Cuando realizamos una entrada de datos, queremos que nuestros datos persistan después de que cerremos la aplicación; en los siguientes temas repasaremos como conectarnos a una base de datos para poder guardar nuestra información, así como extraerla y utilizarla

Sigue leyendo

Publicado en Formacion, PHP y MySQL/MariaDB, SQL | Etiquetado , , | Deja un comentario

El lenguaje SQL

Vamos a revisar algunas instrucciones muy básicas de sql; para mayor comodidad, podemos utilizar las hojas que nos proporciona Eclipse segun definimos aqui, o podeis instalar  MySql en linux; tenéis este artículo que os puede ayudar: Sigue leyendo

Publicado en Formacion, PHP y MySQL/MariaDB | Etiquetado , , | Deja un comentario

Instalación de la Base de datos y un entorno gráfico

Todo nuestro trabajo, se va a realizar utilizando ordenes SQL, tanto para guardar la información, como para extraerla,  actualizarla o borrarla, pero para poder utilizar este lenguaje, necesitamos tener acceso a una base de datos, y nos puede servir la mayoría de RDBMS que hay en el mercado, ya que, al quedarnos en la parte estándar de SQL, las Querys (así  llamaremos a las órdenes que vamos a lanzar), deberían funcionar en la mayoría de ella.

Sin embargo, y para centrarnos en alguna, vamos a trabajar de forma explícita con dos muy conocidas:

 

Si queréis instalar MySql en linux, tenéis este artículo que os puede ayudar:

Tu máquina de desarrollo. Instalando LAMP

si vais a realizar la instalación de MySQL en Windows, podéis leer este otro:

Tu maquina de desarrollo – Instalando XAMPP (en Windows)

 

Si optáis por utilizar la versión gratuita de la famosa base de datos de Oracle, encontrareis una guía de instalación en.

Instalando Oracle Database express Edition

Instalando el entorno Grafico

Una vez instalada y funcionando la Base de datos (o más exactamente el RDBMS) y aunque todos disponen de una interface de línea de comando ( o casi), es cómodo disponer de un sitio en donde escribir nuestras querys, y que nos pueda ayudar recordando nombres de campo, nombres de tabla,….

En ese aspecto, todavía hay un surtido mayor, aunque nosotros nos vamos a limitar a unos pocos:

Para MySQL, disponemos de:

  • phpMyAdmin , que funciona en entorno web
  • MySQL Workbench, aplicación de escritorio que podéis instalar siguiendo el artículo “Mysql: instalando workbench

Para Oracle Express Edition utilizaremos otra herramienta de Oracle, Oracle SQL Developer cuya instalación la tenéis detallada en “Instalando y conectando SQL Developer

Nosotros, aquí vamos a ver como conectar una BBDD a Eclipse; haremos la experiencia con MySQL

Para ello, descargamos el driver de https://dev.mysql.com/downloads/connector/j/

Y escogemos el que nos interese, a continuación

Debéis descomprimir el fichero,

Como resultado de esto, deberéis tener una carpeta con el Driver; en la carpeta descomprimida.

Aunque Eclipse Tiene una perspectiva prevista, es mejor que añadamos un plugin; para eso, vamos a Help->Eclipse Marketplace

Y en la ventana que aparece, escribimos DTP (Data Tools Platform) y buscamos

Ya podemos instalar el plugin

 

Ahora, abrimos Eclipse y cambiamos la perspectiva

Seleccionando Otras

Podréis seleccionar “Database Development”, y allí crear la conexión

Seleccionamos “Nuevo”

Escogemos MySQL,  e indicamos el nombre con el que reconoceremos la conexión (ConexionPruebas), y pulsamos “Next”.

Si no os aparece ningún Driver, pulsar en el botón que os indico en la imagen:

Se os ofrece una lista de drivers:

Al seleccionarlo, puede aparecer un mensaje (remarcado en la imagen) diciendo que no se encuentra el jar correspondiente. Pasáis a la pestaña de “JAR List”,

En donde posiblemente, vosotros tengáis otra línea, pero podéis pulsar en “Edit  JAR/Zip…” y buscar en vuestro disco, la carpeta que habéis descomprimido

 

Al darle OK, volverá a la pantalla anterior, pero esta vez tendréis un driver disponible

Al confirmar esta pantalla, aparece el dialogo de conexión

En Database deberemos indicar la BBDD a la que nos queremos conectar; si no existe, debemos asegurarnos que en URL no hay escrito nada más que la ruta al motor.

La Password es la que hemos indicado durante la instalación de MySQL

Marcaremos Save password, para evitar tener que estarla introduciendo constantemente, y siempre que estemos en entorno seguro…

Podéis probar que los datos son Correctos con el botón Test Connection.

En la perspectiva de “Database Development” nos aparece la conexión creada; y como necesitamos un área para poder escribir los comandos, utilizamos sobre la conexión el botón derecho de ratón y seleccionamos SQL Scrapbook.

En la hoja que aparece, si en la parte de arriba no están los datos de conexión, los seleccionamos nosotros

Y como no tenemos ninguna base de datos, no podemos rellenar el último desplegable, para solucionarlo, vamos a crear nuestra base de datos

Escribimos la orden, utilizamos el botón derecho para dar la orden “Execute All”

Y ya la tendremos creada. Ahora tenemos que modificar los datos de conexión, para ello, botón derecho sobre la conexión

Y seleccionamos Properties

Y le añadimos el nombre de la base de datos recién creada, podemos probar la conexión, y cerrar el dialogo con “OK”

Cada uno de estos Scrapook que utilicemos, los podemos ir guardando como archivos SQL para tener las ordenes preparadas, y también podemos utilizar el mismo sistema para ir consiguiendo nuevas hojas para escribir.

Ahora, podemos utilizar uno, para crear una tabla

Crearemos la tabla PAIS ; la orden será:

Pero antes de ejecutarla, debemos completar los datos de la cabecera, incluyendo el nombre de la base de datos

En la parte inferior de la pantalla, aparece el resultado; en este caso:

Si deseamos borrar una tabla, nos bastaría con hacer

Vamos a crear el resto de tablas que vamos a usar; la de PROVINCIAS

Y la de clientes

Ahora introduciremos algunos datos, para poder probar; para ello, se utiliza la instrucción INSERT (el siguiente código se puede copiar)

Insert into PAIS (ID_PAIS,PAIS_NOMBRE) values ('1','España');

— Tabla de provincias


Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                         values ('1','Barcelona','1');

Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                        values ('6','Tarragona','1');

Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                       values ('7','Lerida','1');

Insert into PROVINCIA (ID_PROVINCIA,PROVINCIA_NOMBRE,ID_PAIS) 
                       values ('10','Gerona','1');

— Tabla de clientes

Insert into CLIENTES (ID,USUARIO,PASSWORD,NOMBRE,DIRECCION,POBLACION,ID_PROVINCIA,FECHA_ALTA)
       values ('1','miguel','miguel','Miguel Garcia','Pez 5','Barcelona','1','1995-10-20');

Insert into CLIENTES (ID,USUARIO,PASSWORD,NOMBRE,DIRECCION,POBLACION,ID_PROVINCIA,FECHA_ALTA) 
      values ('2','antonio','antonio','Antonio Perez','Acuario 32 1º','Barcelona','1','2006-12-05');

Insert into CLIENTES (ID,USUARIO,PASSWORD,NOMBRE,DIRECCION,POBLACION,ID_PROVINCIA,FECHA_ALTA) 
      values ('3','jjose','jjose','Jose Rodriguez','Marsalada 123 ','Barcelona','1','2015-05-01');

NOTA:

Las columnas IDxxxx, las hemos declarado Clave Primaria, y AUTO_INCREMENT, por lo que la podemos dejar en blanco, pero si lo indicamos, no se puede repetir.

 

Ahora, podemos ver el contenido de cualquier tabla, desplengando el epígrafe correspondiente, y con el botón derecho, seleccionamos Data->edit

Y nos aparece el contenido de la tabla

Y nos permite modificar el contenido

Publicado en Formacion, PHP y MySQL/MariaDB | Etiquetado , | Deja un comentario

Java para programadores (9.7) – Cuadros de dialogo

Los cuadros de dialogo, son objetos independientes de la ventana de trabajo (aunque pueden bloquearla). Normalmente, los utilizaremos para comunicar mensajes o para realizar acciones que por sus características, se ha de realizar aparte de la pantalla principal. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , , | Deja un comentario

Java para programadores (9.6) – Listas y Tablas

JList – Muestra un conjunto de opciones de texto y/o gráficas y permite selección única, de rango simple y de rango múltiple

Constructor

JList() Crea un JList vacio y read-only.
JList(ary[] listData) Crea JList con los elementos del array

 

Metodos

int getSelectedIndex()
Object getSelectedValue()
Devuelve el índice del elemento seleccionado o su valor
void setSelectionMode(ListSelectionModel.SELECTION Forma en que se realizara la selección

SINGLE_SELECTION
SINGLE_INTERVAL_SELECTION
MULTIPLE_INTERVAL_SELECTION

swing jlist

 

 

JTable Componente con capacidad para mostrar información de forma tabular, teniendo filas y columnas

Este componente se especializa en la presentación de Arrays multidimensionales, y para eso, deberemos indicar el array de datos, con la información a mostrar, y un segundo array de una dimensión, para indicar los títulos de las columnas

swing JTable

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (9) – Entorno gráfico

Toda aplicación, necesita de una manera u otra interaccionar con el usuario. En esta apartado, veremos cómo trabajar con objetos de pantalla, capturando y presentando información en pantallas con formatos más agradables que la propia consola. Conoceremos también la programación orientada a eventos y los cuadros de dialogo

Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

Ejercicio de java swing, listas/tablas

Clase PantallaPeticion

Necesitamos grabar los nombres de nuestros usuario en un fichero en disco, para ello, prepararemos una pantalla (con JFrame) que solicite el nombre, y con un botón, que al pulsarlo, lo añada a la tabla, junto con un numerador

Si cuando pulsa el botón de “Añadir” el campo de nombre está en blanco, o tiene una longitud menor de 5, se informa del error (JDialog) y se vuelve a pedir

Cuando queramos finalizar, pulsaremos el botón de fin, que nos preguntara el nombre y la ubicación del fichero en donde deseamos guardar la información, Cuando nos lo indiquen, procederemos a realizar la grabación del fichero

 

Para la definición de JTable, será necesario acudir a páginas como https://docs.oracle.com/javase/tutorial/uiswing/components/table.html

Para la grabación del fichero, podemos usar GrabarDatos, escrito en el ejercicio anterior

Solucion

 

 

 

 

 

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Solucion:Ejercicio de java swing, listas/tablas

La clase GrabarDatos se resolvió anteriormente, por lo que solo revisamos la clase PantallaPeticion

En esta ocasión, hemos hecho que la clase herede de JFrame e implemente ActionListener, por lo que no será necesario crear un JFrame, porque ella lo es:

Definición de campos y constantes

Constructor

La clase configura la pantalla, y el resto lo hace atendiendo a eventos

ConfigurarVentana

Recordad, la clase es JFrame, por lo que utilizamos métodos heredados para poner título (42), conseguir su contenedor (43), configurar botón de salida (44), establecer tamaño y auto centrar la pantalla

En 46 y 47, establecemos el layout como SpringLayout, para permitir un control preciso de posicionamiento

De la 49 a la 60, vamos creando componentes, configurándolos, y a los dos botones, les suscribimos como Listener esta misma clase (hemos implementado ActionListener)

De la 71 a la 76, Añadimos todos los componentes y de la 79 a la 88, damos las coordenadas de cada uno. No siempre utilizo las paredes del contenedor; es muy útil relacionar un componente con otro próximo.

 

Tratamiento de eventos

Cada vez que alguien pulse un botón, se llamara a este método, ya que hemos registrado esta clase como Listener.

Lo primero que necesitamos hacer, es saber que botón se ha pulsado. En la 98 conseguimos el botón pulsado (source del evento) y obtenemos el nombre que asignamos al crearlo.

Si se trata del botón de enviar, se llama al método addToRow, que filtra el dato y si es correcto nos lo añade al JTable, luego, forzamos un refresco de la JTable (102) y borramos el contenido del cuadro de texto (103)

Haya habido error o no, posicionamos el foco encima del cuadro de texto para que se corrija, si ha habido error, o para que se entre otro (estará en blanco) si ha ido bien.

Si se trata del botón de grabar, obtiene los datos de JTable (108) y los envía al método grabar (109), al finalizar, cierra el programa

addToRow

Extrae el texto entrado de la JTextArea (119), y si la longitud es correcta, crea un array de dos elementos, le pone el contador en uno, y el texto recuperado en el otro y lo añade a JTable, a través de su modelo. Si la longitud está mal, presenta un mensaje (127) y vuelve por falso

leerDatos(JTable)

Primero comprueba que le hayan pasado un objeto, y luego consigue el número de filas (142) y columnas (143)

Inicializa un array de salida con las longitudes encontradas (144)

De 145 a 149 es un doble bucle for para recorrer todas las filas y todas las columnas, e irlas guardando en el array

Luego ya solo queda devolverlo.

 

grabar()

Este método recibe el array con todo el contenido del JTable

Crea la instancia de GrabarDatos (159)

Llama al método prepara (160) para que GrabarDatos solicite el fichero, y lo abra. Si vuelve por true, recorre todo el array grabando el contenido de la columna 1 que es donde está el nombre del usuario

El método que crea, es el main

Instancia la pantalla y la hace visible.

Publicado en Formacion, Java | Etiquetado | Deja un comentario

Ejercicio java swing y ficheros

Preparar una clase GrabarDatos con tres métodos

prepara() – Utiliza JFileChooser para solicitar la ruta y el nombre de fichero a grabar; si lo puede abrir retorna true, si no, false

graba(String str) – Recibe una string y la graba en el fichero abierto.

close() – Cierra el fichero .

Preparar una clase PrGrabar, que presenta una pantalla con un botón

Ejercicio java swing y file

Al pulsarlo, Instancia la clase GrabaPantalla y con ella crea un fichero y le graba dos líneas con cualquier texto

Solucion

Publicado en Formacion, Java | Etiquetado , | Deja un comentario