domingo, 27 de abril de 2014

Píldoras de Programación en Java: ActionListener



Lo que vamos a aprender en este tutorial es a utilizar de una forma sencilla el ActionListener, que es el encargado de realizar una acción específica cuando ocurra un evento dentro del programa, como podría ser cuando alguien oprime un botón. Para ello necesitaremos crear una pantalla que contenga un botón y un TextFiled ya que lo que se quiere hacer es que cada que alguien oprima el botón se escribirá en consola lo que hayan escrito en el TextField .

Ejemplo

Así que tenemos que crear una nueva aplicación, en este caso la llamare Objeto.


Y dentro de la misma aplicación crearemos una nueva clase que se llamara Pantalla




Para utilizar el ActionListener en java necesitamos utilizar un método llamado actionPerformed.
El ActionListener lo podríamos ver como una clase ya que al igual que en las clases este necesita sus propias variables con las que este trabajara y también se nos hace posible crear un constructor dentro de él (código de abajo). En este caso nosotros solo necesitamos como parámetro o variables enviarle un textField que es de donde extraeremos lo que tenga escrito, para ello tenemos que crear dentro del actionListener una variable de tipo JTextField a la cual la igualaremos dentro del constructor al textField que nos envíen como parámetro que en este caso será el textField que se está utilizando dentro de la clase pantalla ya que como dijimos cada clase maneja sus propias variables.



private JTextField texto1;
public Imprimir(JTextField aux){
texto1=aux;
}


En esta parte de del código igualamos las variables y ya que en java al igualar una variable con otra no se iguala el contenido sino se hace referencia a su espacio de memoria estamos diciendo que esta dos variables son exactamente las mismas (ya que tiene la misma referencia).
Nota: JTextField aux que está dentro de los paréntesis solo es una variable que se crea como un auxiliar cuando se manda el texField en la clase pantalla y por ello esta variable se podría decir que desaparece después de ser utilizada y no se puede hacer referencia a ella.


Integer.parseInt es un método que tiene la clase Integer que permite convertir una varaiable de tipo String a un número entero. Esto nos sirve ya que el texto que contiene el textfield es de tipo String y como sabemos no podemos sumarle un Integer a un String. Y como lo que se quiere hacer es sumarle una unidad a el número que se escriba en el textfield es necesario poder manejarlo como un Integer así que lo que se hacer es escribir Integer a=Integer.parseInt(texto1.getText()); para que podamos manejar ese número en una variable de tipo entera en este caso “a”.

Nota: Integer.parseInt(texto1.getText()); se escribió de esta forma ya que si solo se pusiera Integer.parseInt(texto1); nos marcaria error ya que texto1 es de tipo JTextField y lo que el Integer.parseInt() nos pide como parámetro es un String y para ello ponemos texto1.getText() que lo que hace es dar la referencia del texto que contenga el textField (que es de tipo String).

Sabiendo todo esto solo es necesario sumarle una unidad al número (a++) e impriomirlo en consola con el System.out.println(). 


Ya terminado esto tenemos lo que el programara ara cada que aprieten el botón pero aún no se ha especificado a que botón se hará referencia cuando esto ocurra así que hay que hacerlo poniendo:

boton.addActionListener(new Imprimir(texto));

En este caso botón es el nombre de nuestra variable de tipo JButton al que se hará referencia cuando se oprima. Y dentro de paréntesis pondremos el tipo de acción que queremos que agá ya que dentro de nuestro programa podríamos tener n tipos de acciones, en este caso el nombre de la clase (acción) le pusimos como nombre Imprimir con su respectivo parámetro, en este caso se enviara a texto que es la variable de tipo JTextField del que queremos extraer el texto.
También podríamos utilizarlo de esta forma ya que el actionlistener como se dijo es como una clase.


Imprimir imprimir=new Imprimir (texto);
boton.addActionListener(imprimir)
Mandando como referencia una variable de tipo Imprimir como parámetro del ActionListener.
Nota: en este caso el programa marcara error si lo que escribimos dentro del textField es una letra o palabra ya que al utilizar el Integer.parseInt(), este comportamiento solo sirve cuando lo que se escribe son números y no letras.

Ejercicios

Hacer un programa que pinte una pantalla que contenga un botón y un textField. Y que al escribir un numero en el TextField escriba en consola el número de asteriscos que se allá escrito

  



No hay comentarios:

Publicar un comentario