Los eventos en la biblioteca Hisiuin son procesados por la función widgetAction( Wevent e). Esta función debe estar necesariamente definida en la clase que va a ser la
interfaz gráfica (como se hace referencia en la sección Estructura). Los tipos de eventos que se procesan son los siguientes: Tipo Acción: Son los que se generan al hacer click a un
objeto del tipo Wbutton, al presionar la tecla return en un objeto del tipo Wtextfield o al hacer click sobre un item de un objeto Wmenu. Tipo Cambio de texto: Son los que se generan al cambiar el texto de manera
directa (presionando teclas) o por medio de métodos, de un objeto del tipo Wtextfield o Wtextarea. Tipo Cambio de item: Cuando se hace click a un item o se cambia el item seleccionado de un objeto del tipo Wlist,
Wradiobutton, Wcheckbox, Wchoice o Wcheckbox La función que procesa los eventos, recibe como parámetro un objeto del tipo Wevent. Este objeto tiene los siguientes atributos, que pueden tomar los siguiente valores:
Atributo |
Tipo |
Descripción |
Valores Posibles |
mType |
CString |
Clase que genera el evento |
“Wbutton” |
|
|
|
“Wlist” |
|
|
|
“Wcheckbox” |
|
|
|
“Wtextfield” |
|
|
|
“Wtextarea” |
|
|
|
“Wchoice” |
|
|
|
“Wradiobutton” |
|
|
|
“Wmenu” |
mSource |
CString |
Nombre del Widget que genera el evento |
Nombre de widget. |
mWidget |
Wwidget |
Referencia a widget que genera el evento |
del tipo Wwidget |
mMenu |
Wmenu |
Referencia al menu que genera el evento |
del tipo Wmenu |
En caso que ningún objeto del tipo Wmenu o Wwidget haya generado un evento los valores
para los atributos mWidget o mMenu, según sea el caso, tienen valor null. Imaginemos que se tiene un botón que tiene nombre “uno” en la posición (1,1) de la interfaz.
Un ejemplo del manejo de eventos para ese botón es el siguiente: public void widgetAction( Wevent e){
Si el objeto que generó el evento se llama “uno” y es del tipo “Wbutton”, entonces se procesa el evento. Cabe señalar que objetos que instancian a diferentes clases se
pueden llamar igual en la interfaz. Por ejemplo podemos tener un objeto del tipo Wbutton que se llame “uno”, como también un objeto del tipo Wtextfield que tenga el mismo nombre.
if ( (e.mSource.equals(“uno”) ) && ( e.mType.equals(“Wbutton”) ) ){
Cambiamos el texto del Wbutton. que se encuentra en la posición (1,1). ((Wbutton)get(1,1)).setLabel(“Chao”);
Esta instrucción tiene el mismo efecto si se referencia el objeto que generó el evento. ((Wbutton)e.mWidget).setLabel(“Chao”); }
}
|