Several things are really bad. First, never do a loop like that in runGUI. Also and mainly because the yield() is only an "hint" (from javadoc: A hint to the scheduler that the current thread is...