curso de java

Curso de Java
Desde cero hasta conexiones con bases de datos MySQL

Aplicación: página 3
[ 30, 1, 2, 3, 4, 5, 6 ]

Aplicación de ejemplo

Antes de programar

Captura de eventos

Desde el apartado anterior hemos estado tratando conceptos que son del entorno de las interfaces gráficas: ventanas, componentes, etc., que usan privilegiadamente los sistemas operativos comunes de la actualidad. Junto con estos conceptos, que se relacionan con objetos visuales, está el tema de los eventos que se desencadenan por las acciones del usuario sobre éstos con los dispositivos de entrada tales como el teclado y el Mouse entre otros.
De dichos eventos el más usado es, precisamente, el clic del Mouse, de cuya programación se pueden obtener muchos beneficios; de hecho, en nuestra aplicación de ejemplo sólo usaremos este caso. Para hacer que una clase capture los eventos es necesario usar otra palabra reservada: implements, que sirve para agregar interfaces a las clases, y que se usa también en la línea de la declaración de éstas, después de la sentencia extends (si existe); es útil decir que se puede implementar más de una interfaz. Todos los programas que requieran responder al clic del Mouse usarán la interfaz ActionListener que nos obliga a agregar el método actionPerformed() a nuestra clase (Las interfaces son clases especiales que es inútil explicar aquí y que casi siempre exigen que se agreguen métodos específicos). Los clics capturados remitirán el flujo del programa al método actionPerformed() que recibe como parámetro objetos de la clase ActionEvent .
Para mostrar esto haremos una clase que sea un JFrame, que contenga un JButton y que al recibir un clic mande un mensaje:


DemoEventoCapturado.java

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JButton;

import javax.swing.JOptionPane;

/*Las clases ActionListener y ActionEvent

 *son de la librería awt (Abstract Windows Toolkit)*/

 import java.awt.event.ActionListener;

 import java.awt.event.ActionEvent;

 /*Las interfaces se implementan 

  *después de la definición de extends */

public class DemoEventoCapturado extends JFrame implements ActionListener{    

    JButton elBoton;//Es atributo porque se usa en organizaComponentes() y en el actionPerformed()

    public DemoEventoCapturado() {

    	organizaComponentes();

    	pack();

    	setVisible(true);

    }

    private void organizaComponentes(){

    	JPanel panel=new JPanel();    	

    	elBoton=new JButton("Haz clic");

    	/*A los objetos que pueden recibir el clic

    	 *debe agregárseles un ActionListener

    	 *que lo reciben de la implementación de 

    	 *la clase actual (this)*/    	 

    	elBoton.addActionListener(this);

    	add(panel);

    	panel.add(elBoton);    	

    }

    /*Todos los objetos que tienen un ActionListener de la clase

     *remitirán el flujo del programa a este método

     *que es obligatorio y su sintaxis es así como se muestra

     */

    public void actionPerformed(ActionEvent evt){

    	JOptionPane.showMessageDialog(this,"Gracias");

    	

    }    	

    public static void main(String[] args) {

        new DemoEventoCapturado();

    }

}      

[ Anterior | Siguiente ]