Colocar um plano de fundo no form

Galera, fiz um programinha bem basico no NetBeans, e gostaria de mudar o plano de fundo dele, tipo colocando uma imagem q eu tenho no pc, ou n precisa nem ser plano de fundo, apenas colocar a imagem no programa, e tbm aproveitando o topico, como eu faco para o programa iniciar no centro da tela, ele sempre inicia no canto superior esquerdo.

vlw pela ajuda

opa…

para colocar a janela de sua aplicação no centro da tela, conheço duas formas:

a primeira:

//this = seu frame
this.setLocationRelativeTo( null );

e a segunda, calculando o tamanho da sua janela e da resolução da tela

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation( ( screenSize.width - this.getWidth() ) / 2,
                          ( screenSize.height - this.getHeight() ) / 2 );

Para colocar uma imgam de fundo, acredito que vc terá que usar um JPanel, e este colocar no fundo do seu JFrame.

para colocar uma imagem no JPanel, você terá que fazer algo como:

ImageIcon image = new ImageIcon( "sua_imagem" );

public void paintComponent( Graphics g )
{
   super.paintComponent( g );

   if ( image != null )
   {
      g.drawImage( image.getImage(), 0, 0, this );
   }
   else
   {
       System.out.println( "Image is null" );
   }
}

ok,obrigado, eu vou tentar aq.

vlw

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