| Walter Mora F. | Revista Digital Matemática, Educación e Internet |

Contenido


Método  action( ).

Con el método action() vamos a manejar los eventos que tienen como blanco (target) botones, campos de texto, casillas de verificación, cajas de opción y menús. La forma del método es

   

 public boolean action(Event evento, Object arg
 { 
       // retorna true si el evento se maneja aquí mismo; 
       // returna false si no se maneja el evento (o se lo pasa a otro método boolean) 
 }

Como el método debe retornar un valor booleano,  la última línea debe ser 'return true;'  o  'return  false;'. Si el evento se maneja en action( ) se retorna 'true'. Si el evento no se maneja,  o  se pasa a otro método (que devuelve true o false) entonces se retorna 'false' (para que otros componentes tengan oportunidad de manejar el evento). 

  • El nombre de la variable  Event usted la escoge, puede ser algo como evento, evt, etc.
  • La variable evento.target  contiene una referencia al objeto que recibe el evento. 
  • El objeto arg  es un argumento extra para pasar información que pudiera ser útil en el procesamiento de la acción

Si tenemos

Button    btn1= new Button("Botón 1");

TextField tf1 = new TextField(" texto ");

entonces

 

Componente

El contenido del objeto arg es el String

 El contenido de evento.target es la referencia

Botón "Botón 1" btn1
Campo de texto " texto " tf1

 

El Objeto 'arg' lo usamos en el ejemplo de la sección anterior. En este ejemplo solo teníamos un botón con dos posibles etiquetas "Azul" o "Verde"  y 'arg' nos sirvió para conocer información acerca de la  etiqueta actual del botón.

 

public boolean action(Event evento,Object arg )
{
     if( evento.arg.equals("Azul") )  //Un solo botón con dos posibles etiquetas
     {
      setBackground(Color.blue);      // cambia el color de fondo a azul
      btn1.setLabel ("Verde");        // ahora el botón se llama 'Verde'
      btn1.setActionCommand ("Verde");// ahora el botón se identifica con "Verde"
     }

     if( evento.arg.equals("Verde") )
    {
     setBackground(Color.green);     // cambia el color de fondo a verde
     btn1.setLabel ("Azul");         // ahora el botón se llama 'Azul' de nuevo
     btn1.setActionCommand ("Azul"); // ahora el botón se identifica con "Azul"
}

 

En general, el método action( ) luce así

 


  public boolean action(Event evt, Object arg) 
  {    
    if (evt.target == button1) 
    { // manejo del evento asociado a button1
         return true; 

    } else if (evt.target == button2) 
           { // manejo del evento
               
return true; 

            } else if (evt.target == tf1) 
                   { // manejo del evento tf1
                       
return true;
                   
                    }
            ...

           } else return super.action(evt,arg); 
 }//

 

 Ejemplo

En el siguiente ejemplo pondremos dos campos de texto y dos botones en la ventana de un applet. Los botones ocultan los campos de texto usando el método ' setVisible()'

 


import java.awt.*;
import java.applet.*;

 public class Eventos extends Applet 
 {
   TextField  tf1,  tf2; 
   Button     btn1, btn2; 


   public void init() 
   { 
      tf1  = new TextField(" ");
      tf2  = new TextField(" ");
      btn1 = new Button ( "Botón 1");
      btn2 = new Button ( "Botón 2");
      add(btn1);
      add(tf1);
      add(btn2);
      add(tf2); 
      btn1.setBackground(new Color(153,255,0));
      btn2.setBackground(new Color(153,255,0));

     setBackground(new Color(0,153,153)); 
   }  

   public Insets insets() 
   { // márgenes de 5 alrededor del applet
    return new Insets(5,5,5,5);
   }

   public boolean action(Event evt, Object arg) 
   {
     if (evt.target == btn1) 
     { 
      tf1.setVisible(false);
      tf2.setVisible(true);

     }else if (evt.target == btn2) 
           {
            tf1.setVisible(true);
            tf2.setVisible(false);
           }

     return true; //todo se manejo aquí mismo
  } 


} // 

Los navegadores ya no brindan soporte para applets de java, este applet se ha deshabilitado

 

Ejercicio

Implemente el programa anterior usando  evt.arg

 


Revista digital Matemática, Educación e Internet.
Derechos Reservados