viernes, 19 de octubre de 2012

Creación de Threads

Alternativas de creación
En Java hay dos formas de crear nuevos threads. La primera de ellas consiste en crear una nueva clase que herede de la clase  java.lang.Thread y sobrecargar el método run() de dicha clase. El segundo método consiste en declarar una clase que implemente la interfaz java.lang.Runnable, la cual declarara el método run(); posteriormente se enviara dicho objeto a la clase Thread.

En este caso, se ha creado la clase MiClase, que hereda de Thread y después haremos lo mismo pero implementando Runnable. La principal actividad del thread, es que escriba 10 veces el nombre del thread creado.

Para poner en marcha este nuevo thread se debe llamar la método start(), heredado de la súper-clase Thread, que se encarga de llamar a run().

Introducción a Threads


Que es un Thread (Hilo de Ejecución).
Un concepto fundamental en programación es la idea de manejar más de una tarea a la vez. Muchos problemas de programación requieren que el programa pueda detener lo que este haciendo, tratar con algún otro problema y regresar al proceso principal.

Dentro de un programa, las partes que corren separadamente se llaman hilos (Thread) y el concepto general se llama Multithreading.

Ordinariamente, los hilos son una manera de asignar el tiempo de un solo procesador. Pero si el sistema operativo apoya procesadores múltiples, cada hilo puede asignarse a

jueves, 14 de junio de 2012

Uso de JList y JTable


Para el manejo de datos con JList y JTable debemos hacer uso de modelos. En el caso de las listas vamos a
necesitar hacer uso de la clase DefaultListModel y para las tablas usaremos DefaultTableModel.
Vamos a tener que importar las siguientes librerías:

import javax.swing.DefaultListModel;                   // En caso de JList
import javax.swing.table.DefaultTableModel;       // En caso de JTable

Listas

Primero que nada debemos crear nuestro modelo para luego asignárselo a nuestra lista. Yo recomiendo declararlo como atributo de clase y de forma estática, para que sufra las modificaciones desde cualquier parte del programa.
Su implementación es la siguiente:

lunes, 4 de junio de 2012

JOptionPane


JOptionPane.showOptionDialog()

Tenemos un método JOptionPane.showOptionDialog() que nos muestra la ventana más configurable de todas, en ella debemos definir todos los botones que lleva. De hecho, las demás ventanas disponibles con JOptionPane se construyen a partir de esta. Por ello, al método debemos pasarle muchos parámetros:

■  parentComponent: A partir de este componente, se intentará determinar cual es la ventana que debe hacer de padre del JOptionPane. Se puede pasar null, pero conviene pasar, por ejemplo, el botón desde el cual se lanza la acción que provoca que se visualice el JOptionPane. De esta manera, la ventana de aviso se visualizará sobre el botón y no se podrá ir detrás del mismo si hacemos click en otro sitio.

■  message: El mensaje a mostrar, habitualmente un String, aunque vale cualquier Object cuyo método toString() devuelva algo con sentido.

■  title: El título para la ventana.

■  optionType: Un entero indicando qué opciones queremos que tenga la ventana. Los posibles valores son las constantes definidas enJOptionPane: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, o OK_CANCEL_OPTION.

■  messageType: Un entero para indicar qué tipo de mensaje estamos mostrando. Este tipo servirá para que se determine qué icono mostrar. Los posibles valores son constantes definidas en JOptionPane: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, o PLAIN_MESSAGE

■  icon: Un icono para mostrar. Si ponemos null, saldrá el icono adecuado según el parámetro messageType.

■  options: Un array de objects que determinan las posibles opciones. Si los objetos son componentes visuales, aparecerán tal cual como opciones. Si son String, el JOptionPane pondrá tantos botones como String. Si son cualquier otra cosa, se les tratará como Stringllamando al método toString(). Si se pasa null, saldrán los botones por defecto que se hayan indicado en optionType.

■  initialValue: Selección por defecto. Debe ser uno de los Object que hayamos pasado en el parámetro options. Se puede pasar null.

La llamada a JOptionPane.showOptionDialog() devuelve un entero que representa la opción que ha seleccionado el usuario. La primera de las opciones del array es la posición cero. Si se cierra la ventana con la cruz de la esquina superior derecha, el método devolverá -1.

Un ejemplo de cómo llamar a este método

¿JFrame o JDialog?


Cuando queremos hacer ventanitas en java nos encontramos con dos ventanas: El JFrame y el JDialog. ¿Cuándo se usa una u otra?, ¿Qué diferencias hay entre ellas? 
Los JDialog admiten un padre y pueden ser o no modales. ¿Para qué sirve ese padre? ¿Puedo hacer cualquier JDialog modal? 
Vamos a tratar en este tutorial de echar un vistazo a JFrame y JDialog, Trataremos de responder a todas estas preguntas.

JFrame y JDialog

Los dos tipos de ventanas principales que tenemos en java son JFrame y JDialog. Hay varias diferencias entre ellas y en función de estas diferencias vamos a ver para qué sirven