У меня была похожая проблема, которая была решена перемещением
this.setVisible(true);
команда после того, как ВСЕ код, который устанавливает GUI, был завершен, вместо того, чтобы иметь его в начале или где-то посередине.
В вашем случае я бы предложил переместить его до (или, возможно, после, в зависимости от вашего кода) строки
app.startClient();