A parte de centralizar o form na tela as duas formas realmente bacanas já foram faladas.
No entanto, para adicionar um fundo na sua tela, existem várias alternativas.
Uma delas, muito válida, foi falada.
Outra é a mesma alternativa mas criando uma classe para isso. Provavelmente você vai querer repetir esta ação mais pra frente e nada melhor que reaproveitar seu código, afinal, essa é a idéia da OO.
Uma maneira bem bacana e bem válida é adicionar um layeredPane na tela, incluir um JLabel no JLayeredPane e colocar a imagem no JPanel.
Outra forma, dependendo de como você trabalha, é apenas incluir um JLabel, sem precisar do JLayeredPane.
Vale lembrar que alguns LookAndFeel (um muito usado, o Nimbus) já trazem um wallpaper interessante, se você for usar um JDesktopPane (componente especialmente indicado para construir aplicações do tipo MDI, com vários JInternalFrames em um JFrame principal).
Você também pode alterar o LookAndFeel para ELE implementar esta imagem.
Esta é a saída mais complicada de todas mas a mais “elegante”.
Até porque você vai ter um L&F customizado seu e vai ter diversos outros controle como, por exemplo, bordas de botões, cores, efeitos, etc etc etc.
Soh passei para adicionar isto aqui porque acho interessante o povo saber destas alternativas.
Mas o que foi falado sem dúvidas já funciona bem legal.
^^
flwz