ASOCIAR EL CONTROL A LA ACCIÓN en JAVA

ASOCIAR  EL CONTROL A LA  ACCIÓN en JAVA

Para asociar los controles como botones, listas, casillas, etc… a  un método debemos implementar el método action. En dicho método deberemos escribir las acciones que van a realizar cada uno de los controles que tengamos en el applet, teniendo en cuenta lo siguiente.

El método action recibe dos parámetros, el primero es un objeto de la clase Event que recoge el evento producido en el applet. El segundo es un objeto de la clase Object que recoge cual a sido  el control que a producido la acción.

 

Con estos dos objetos lo primero que debemos escribir en el método action son  sentencias if para determinar el tipo de control que a producido la acción (línea 1). Si hay más controles del mismo tipo, deberemos  distinguir uno de otro con más sentencias if dentro de cada if que gestiona el tipo de control (línea 2). Por último, cada uno de estos if deben llevar una sentencia return true para indicar que todo ha ido bien (lineal). Al final del método se debe incluir la sentencia return false para no hacer nada en caso de que la acción realizada no tenga interés para nuestra aplicación (línea 4).

 

 

public boolean action(Event nombre_ev, Object nombre_obj)

{

     (1)if (nombre_ev.target instanceof Button)

   {

       (2) cuerpo con if para cada uno de ese tipo;

       (3) return true;

        }

     (4)return false;

}

 

 

 

EJEMPLO: Con una caja de texto, una etiqueta y  un botón, vamos a escribir un nombre en la caja de texto y al pulsar el botón pasaremos el texto a la etiqueta poniendo además del contenido de la caja de texto un hola.

 

import java.awt.*;

import java.applet.*;

 

public class eje extends Applet{

   TextField caja_texto=new TextField(10);

   Label etiqueta=new Label(» «,Label.CENTER);

String nombre;

 

public void init(){

setLayout(null);

      Button boton=new Button(«Cambiar»);

      add(caja_texto);

      add(etiqueta);

      add(boton);

      caja_texto.reshape(10,10,50,20);

      etiqueta.reshape(70,10,50,20);

      boton.reshape(10,50,100,30);

}

 

  public boolean action(Event evt,Object obj){

if (evt.target instanceof Button)

     {

          nombre=caja_texto.getText();

          caja_texto.setText(«»);

          etiqueta.setBackground(Color.blue);

          etiqueta.setText(«hola «+nombre);

          return true;

     }

     return false;        

}

}//fin de la clase

 

 

 

EJEMPLO: En este programa pedimos grados y al pulsar el botón mostrar dibuja el arco según los grados. Si se pulsa el botón limpia la caja de texto y poner el dibujo completo.

 

import java.awt.*;

import java.applet.*;

 

public class ejemplo extends Applet{

     TextField grados=new TextField(3);

     int g_final=0;

 

     public void init(){

         setLayout(null);

         Label eti=new Label("grados",Label.CENTER);

         Button okboton=new Button("Mostrar");

         Button limpia=new Button("Limpiar");

         add(eti);

         add(okboton);

         add(limpia);

         add(grados);

         eti.reshape(0,0,50,50);

         grados.reshape(60,15,90,20);

         okboton.reshape(10,60,50,40);

         limpia.reshape(10,120,50,40);

     }

 

     public boolean action(Event ev, Object arg){

         boolean res;

         String texto="";

        

         if(ev.target instanceof Button)

         {

              res=arg.equals("Mostrar");

              if(res==true)

              {

    g_final=Integer.parseInt(grados.getText());

                  redraw();

              }

              else

              {

                 grados.setText(texto);

                 g_final=0;

                 redraw();      

              }

              return true;

         }

         return false;

     }

 

     public void paint(Graphics g){

         g.drawArc(150,150,200,200,0,g_final);

         g.setColor(Color.blue);

         g.drawLine(125,250,375,250);

         g.drawLine(250,125,250,375);

     }

 

     public void redraw(){

         repaint();

     }

}

 

 

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *