Splash screen

Olá, estou criando uma SplashScreen no meu projeto, o codigo segue abaixo:

[code]import javax.swing.;
import java.awt.
;

public class Spash extends JWindow{
private int duracao;

public Spash(int d){
duracao=d;
}
public void mostraSpalsh(){
JPanel painel=(JPanel)getContentPane();

this.setBounds(200,80,200,200);
JLabel lbSpash= new JLabel(new ImageIcon("entrada2.jpg"));
painel.add(lbSpash,BorderLayout.CENTER);
painel.setBackground(Color.black);

this.setVisible(true);
this.pack();

try{
  Thread.sleep(duracao);
  setVisible(false);
}
catch(Exception e){
  JOptionPane.showMessageDialog(null,"Erro"+e.getMessage());
}

}
public void mostraTela(){
mostraSpalsh();

}

}[/code]

gostaria de saber como posicionar a Tela Splash no centro do monitor??
Tem como adaptar a qualquer resolução, por exemplo: independente da resolução que o usuario esteja usando a tela de splash sem aparecerá no centro da tela.

me ajudem por favor

obrigado desde já

tem um erro no seu codigo, vc tem que chamar o metodo setVisible(true) em uma nova Thread, senao a instrucao seguinte soh sera executada depois que a janela for fechada…

pra deixar centralizado, logo apos a chamada ao metodo pack(), ponha isso:

// pega dimensoes da tela
Dimension d1 = Toolkit.getDefaultToolkit().getScreenSize();
// como vc usou o metodo pack, eh necessario
// chamar o metodo getSize() para saber o tamanho
Dimension d2 = getSize();
setLocation((d1.width - d2.width) / 2, (d1.height - d2.height) / 2);