Spelling Bee Random Words. Capítulo Tres. Las Abejas No Son Iguales

De cómo funciona el Timer, cómo fui removiendo las palabras del ArrayList para que no se repitieran y las anécdotas de la primera rondas del evento...

Pensemos ¿Qué es lo que hace el usuario para echar a andar el programa? Exacto: “Picar el botón”. NetBeans es una plataforma genial que nos ayuda a hacer muchas cosas, vamos a apoyarnos en este IDE para programar un método ActionPerformed, precisamente al picar el botón:

ActionPerformed del método Run
ActionPerformed del método Run

El código que se genera es el siguiente:

    private void runActionPerformed(java.awt.event.ActionEvent evt) {
        /* aquí pondremos dos bloques condicionales */
    }

Entonces ¿Qué sucede después de picar el mentado botón? Pueden presentarse dos escenarios…

Primer escenario:

        if (evt.getActionCommand().equals("Run")){
            if (file == null){
               JOptionPane.showMessageDialog(null, "You have not choosed any dictionary yet");
           } else {
               timer = new Timer();
               run.setText("Stop");
               timer.schedule(new flyBee(), 0, 1*20);
           }
        }
  • 1: Si al presionar el botón este tiene la etiqueta "Run", preguntamos ¿Hay diccionario?…
    • 2 -> 3: No hay diccionario, se lo decimos al usuario
    • 4: Sí hay diccionario.
      • 5: Creamos una instancia de la clase Timer
      • 6: Le cambiamos de etiqueta al botón, en vez de Run, que se llame Stop
      • 7: Ejecutamos el método schedule y le pasamos tres parámetros: un objeto flyBee, que es la tarea a ejecutarse y los respectivos temporizadores: el cero para indicar que NO vamos a esperar tiempo alguno antes de la ejecución y el 20 es el tiempo en milisegundos entre cada ejecución

Segundo escenario:

        if (evt.getActionCommand().equals("Stop")) {
               timer.cancel();
               run.setText("Run");
        }
  • 11: Si al presionar el botón este tiene la etiqueta "Stop"
    • 12:Cancelamos el objeto timer
    • 13:Volvemos a etiquetar el botón con el nombre "Run"

Pues bien, al parecer todo había quedado a la perfección… Fui con el Teacher Ernest, le mostré el programita en acción, pero oh sorpresa, lo primero que me dijo fue:

— Muy bien, me parece bien, tan sólo una cosa; ¿Se puede hacer que no se repitan las palabras?

¡Caray! Porqué no contemplé eso, sin duda que se podía. Así que esa misma noche puse manos a la obra. El chiste era ir eliminando las palabras justo después de que se oprimiera el botón con la etiqueta "Stop". Resultó tan fácil (a decir verdad batallé cerca de dos horas con eso) como añadir una línea de código:

        if (evt.getActionCommand().equals("Stop")) {
               dic.wordList.remove(position);
               ...

Como puedes ver, usé la variable position para identificar la palabra que había usado algunos milisegundos antes…

El evento

La primera ronda del evento llegó, desafortunadamente el Spelling Bee Random Words no estaba 100% listo… Pero eso no impidió que el evento fuera emocionante, el nerviosismo (de organizadores y participantes) estaba en el aire… así fue como uno por uno fueron pasando los Spelling Bees, tomando de una cajita los papelitos y abriéndolos nerviosamente… mientras tanto el público apoyaba a sus favoritos😉

Aunque me hubiese gustado que la eliminación fuese a muerte súbita, para que la emoción y los nervios llegaran al límite, tengo que aclarar que fue a través de un jurado: los jueces decidieron. Y de esta forma sabíamos quienes eran las abejas semifinalistas… las que en la siguiente ronda estrenarían el programa😮

A decir verdad la organización del evento estaba siendo un éxito, pero el teacher Ernest no era conformista y en medio de todo este relajo estaba preparando una obra de teatro ¿De qué trataba la obra? Eso será una sorpresa para el post final…

Continuará…
En el próximo capítulo: les contaré cómo implementamos la "pantalla completa" y le agregamos un background a la interfaz principal

2 comentarios sobre “Spelling Bee Random Words. Capítulo Tres. Las Abejas No Son Iguales

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s