Вы используете Java 6 или новее? Если это так, то вы можете запустить jconsole и проверить приложение на наличие заблокированных потоков.
Одна проблема, которую я вижу здесь, заключается в том, что, по-видимому, у вас есть по крайней мере один поток не-пользовательского интерфейса («Smack Listener Processor (1)»), который обращается к компонентам пользовательского интерфейса. Помните, что Swing не является поточно-ориентированным, и странные вещи начинают происходить, когда вы обращаетесь к компонентам Swing из потока диспетчеризации событий.