Los expertos en procesamiento de eventos GUI de programación JAVA para principiantes deberían echarle un vistazo.
No leí el código con atención porque era demasiado largo. Creo que podemos comenzar con los siguientes aspectos:
1. Depuración del punto de interrupción, pj text(" BUENO ");
2. El orden de setext() y add(text) puede deberse a que no se actualiza la interfaz.