CardLayout - troca de paineis!

To tentando trocar os paineis!!Mas não to conseguindo!!
No método run que estou tentando fazer a troca!!

        public void run(){
            try{
                input = new ObjectInputStream(socket.getInputStream());
                Mensagem m = (Mensagem)input.readObject();
               r = checaLogon(m);
                if(r){
                    cardLayout.show(pPrincipal,"pLogado");
                    while(!socket.isClosed()){
                       leMensagens();
                    }
                    socket.close();
                    cardLayout.show(pPrincipal, "pLogar");
                   
                }

            }catch(IOException ex){
                JOptionPane.showMessageDialog(null, "threadinput: " +ex, "Erro!!", JOptionPane.ERROR_MESSAGE );
            }catch(ClassNotFoundException cnfe){
                JOptionPane.showMessageDialog(null, "classnotfound: " +cnfe, "Erro!!", JOptionPane.ERROR_MESSAGE );
            }
        }
    }

     
}

Resolvido!!