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