Sie sind auf Seite 1von 4

Tutorial de Java - Botones

1 de 4

http://proton.ucting.udg.mx/tutorial/java/Cap4/boton.html#BotonEvento

BOTONES
Veremos ejemplos de cmo se aaden botones a un panel para la interaccin del usuario con la aplicacin,
pero antes vamos a ver la creacin de botones como objetos.
Se pueden crear objetos Button con el operador new:
Button boton;
boton = new Button( "Botn");

La cadena utilizada en la creacin del botn aparecer en el botn cuando se visualice en pantalla. Esta
cadena tambin se devolver para utilizarla como identificacin del botn cuando ocurra un evento.

Eventos Button
Cada vez que el usuario pulsa un botn, se produce un evento, de la misma forma que se produce un evento
cuando se aprieta el botn del ratn. Los eventos de pulsacin de un botn se pueden capturar sobrecargando
el mtodo action():
public boolean action( Event evt,Object obj ) {
if( evt.target instanceof Button )
System.out.println( (String)obj );
else
System.out.println( "Evento No-Button" );
}

La distincin entre todos los botones existentes se puede hacer utilizando el objeto destino pasado por el
objeto Event y comparndolo con los objetos botn que hemos dispuesto en nuestro interface:
import java.awt.*;
import java.applet.Applet;
public class Botones extends Applet {
Button b1,b2,b3;
public
b1
b2
b3

void init() {
= new Button( "Botn B1" );
= new Button( "Botn B2" );
= new Button( "Botn B3" );

this.add( b1 );
this.add( b2 );
this.add( b3 );
}
public boolean action( Event evt,Object obj ) {
if( evt.target.equals( b1 ) )
System.out.println( "Se ha pulsado el boton B1" );
if( evt.target.equals( b2 ) )

27/01/2015 13:35

Tutorial de Java - Botones

2 de 4

http://proton.ucting.udg.mx/tutorial/java/Cap4/boton.html#BotonEvento

System.out.println( "Se ha pulsado el boton B2" );


if( evt.target.equals( b3 ) )
System.out.println( "Se ha pulsado el boton B3" );
return true;
}
}

En el applet anterior, Botones.java, observamos que se imprime el texto asociado al botn que hayamos
pulsado.

Botones de Pulsacin
Los botones presentados en el applet son los botones de pulsacin estndar; no obstante, para variar la
representacin en pantalla y para conseguir una interfaz ms limpia, AWT ofrece a los programadores otros
tipos de botones.

Botones de Lista
Los botones de seleccin en una lista (Choice) permiten el rpido acceso a una lista de elementos. Por
ejemplo, podramos implementar una seleccin de colores y mantenerla en un botn Choice:
Boton de
Lista

import java.awt.*;
import java.applet.Applet;
public class BotonSeleccion extends Applet {
Choice Selector;
public void init() {
Selector = new Choice();
Selector.addItem( "Rojo" );
Selector.addItem( "Verde" );
Selector.addItem( "Azul" );
add( Selector );
}
public boolean action( Event evt,Object obj ) {
if( evt.target instanceof Choice )
{
String color = (String)obj;
System.out.println( "El color elegido es el " + color );
}
return true;
}
}

En este ejemplo, BotonSeleccion.java, la cadena proporcionada al mtodo addItem() ser devuelta en el


argumento Object de un evento Choice, por ello en el manejador del botn de seleccin, comprobamos en
primer lugar que se trate efectivamente de un evento generado en un botn de tipo Choice.

27/01/2015 13:35

Tutorial de Java - Botones

3 de 4

http://proton.ucting.udg.mx/tutorial/java/Cap4/boton.html#BotonEvento

Botones de Marcacin
Los botones de comprobacin (Checkbox) se utilizan frecuentemente como botones de estado. Proporcionan
informacin del tipo S o No (true o false). El estado del botn se devuelve en el argumento Object de los
eventos Checkbox; el argumento es de tipo booleano: verdadero (true) si la caja se ha seleccionado y falso
(false) en otro caso.
Tanto el nombre como el estado se devuelven en el argumento del evento, aunque se pueden obtener a travs
de los mtodos getLabel() y getState() del objeto Checkbox.
Boton

import java.awt.*;
import java.applet.Applet;
public class BotonComprobacion extends Applet {
Checkbox Relleno;
public void init() {
Relleno = new Checkbox( "Relleno");
add( Relleno );
}
public boolean action( Event evt,Object obj ) {
if( evt.target instanceof Checkbox )
System.out.println( "CheckBox: " + evt.arg.toString() );
return true;
}
}

El sencillo ejemplo anterior, BotonComprobacion.java, muestra los cambios que se producen en el estado del
botn cuando la caja est o no seleccionada.

Botones de Seleccin
Los botones de comprobacin se pueden agrupar para formar una interfaz de botn de radio
(CheckboxGroup), que son agrupaciones de botones Checkbox en las que siempre hay un nico botn activo.
Boton Radio

import java.awt.*;
import java.applet.Applet;
public class BotonRadio extends Applet {
CheckboxGroup Radio;
public void init() {
Radio = new CheckboxGroup();
add( new Checkbox( "Primero",Radio,true) );
add( new Checkbox( "Segundo",Radio,false) );
add( new Checkbox( "Tercero",Radio,false) );

27/01/2015 13:35

Tutorial de Java - Botones

4 de 4

http://proton.ucting.udg.mx/tutorial/java/Cap4/boton.html#BotonEvento

}
}

En el ejemplo anterior, BotonRadio.java, observamos que siempre hay un botn activo entre los que
conforman el interfaz de comprobacin que se ha implementado.

Botones Autocontenidos
La naturaleza orientada a objetos de Java nos da la posibilidad de crear botones completamente
autocontenidos. En este tipo de botn, se construye el manejador de eventos dentro de la propia clase
extendida de botn. Se pueden aadir estos botones a la aplicacin, sin tener que preocuparse de los eventos
que pudieran generar.
En el ejemplo siguiente, BotonAuto.java, creamos el botn que muestra la figura, un botn que genera el
texto "Boton Aceptar" por la salida estndar:
Boton Autocontenido

import java.awt.*;
import java.applet.Applet;
class BotonAceptar extends Button {
public BotonAceptar() {
setLabel( "Aceptar" );
}
public boolean action( Event evt,Object obj ) {
System.out.println( "Boton Aceptar" );
return true;
}
}
public class BotonAuto extends Applet {
BotonAceptar boton;
public void init() {
boton = new BotonAceptar();
add( boton );
}
}

Es de hacer notar que no hay un mtodo action() en la clase applet BotonAuto, la clase BotonAceptar
manejar sus eventos. Si se hubiesen colocado otros objetos en el applet, se podra haber usado un mtodo
action() para tratar los eventos de esos objetos.
Tutorial de Java

[Anterior] [Indice] [Siguiente]

27/01/2015 13:35

Das könnte Ihnen auch gefallen