Afinal pra que serve ? Eu sei que é um “local” onde a gente adiciona os componentes que irão ter a interação com o usuário (poxa, falei bonito), mas por que se utilizar um getContentPane() ? Alguém explica ou tem alguma páginazinha que possa indicar ?!
O JFrame em si não é o lugar pra adicionar componentes, na verdade ele implementa a Interface RootPaneContainer que contém o método getContentPane() pra retornar o Container do JFrame, só no Container é possível adicionar outros componentes.