Olá, estou tentando encontrar uma resposta para solucionar o meu problema! Através do GUJ consegui montar uma Splash Screen (Tela de boa-vinda). Agora eu estou querendo adicionar nessa tela uma barra de progresso que vá contabilizando uma porcentagem até a abertura da tela de login do meu sistema. Será que alguém pode me ajudar?
Desde já agradeço!
Podem contar comigo para outras dúvidas! 
Aqui vai um exemplo utilizando a nova classe do JSE 6, SplashScreen.
private class CarregaTask extends Task
{
SplashScreen splash = null;
public CarregaTask(Application app, View view)
{
super(app);
this.view = view;
}
@Override
protected Object doInBackground()
{
splash = SplashScreen.getSplashScreen();
try
{
setSplashScreenProcess(20, splash, "Inicializando...");
// carrega algo
setSplashScreenProcess(50, splash, "Inicializando...");
// carrega algo
setSplashScreenProcess(90, splash, "Inicializando...");
// carrega algo
setSplashScreenProcess(100, splash, "Inicializando...");
//pronto para a tela de login
}
catch(UnsatisfiedLinkError e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Não foi possível encontrar " +
"a dll mp2032 da impressora bematech. ");
System.exit(0);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Arquivo de configuração dos " +
"relatórios não encontrado. " + e.getMessage());
}
catch(Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Problemas com a conexão " +
"com o banco de dados. Erro ao iniciar a fabrica de DAOs. " + e.getMessage());
System.exit(0);
}
return null;
}
@Override
protected void succeeded(Object arg0) {
splash.close();
navigator.getLoginPresenter().openView();
}
@Override protected void finished()
{
setMessage("Terminado.");
}
}
protected void setSplashScreenProcess(double p, SplashScreen splashScreen, String str)
{
if (splashScreen != null)
{
Dimension size = splashScreen.getSize();
Graphics g = splashScreen.createGraphics();
FontMetrics fm = g.getFontMetrics ();
int sWidth = fm.stringWidth (str);
int sHeight = fm.getHeight ();
int x = (size.width-sWidth)/2;
int y = (int) ((size.height * 0.90));
g.setColor(Color.ORANGE);
g.fillRect(x - (sWidth/2), y - sHeight,((int)(sWidth*2*(p/100))), sHeight+2);
if (sWidth < size.width && 2*sHeight < size.height)
{
g.setColor (Color.blue);
g.drawString (str, (size.width-sWidth)/2, y);
}
splashScreen.update();
}
}
utilize o padrão observer para isto.
Fala Vinícius! Eu hoje tentei implementar esse exemplo, mas não estou conseguindo. Esta classe pertence qual pacote? Eu observei que neste exemplo não tem nenhum import e dá erro de sintaxe pois existem vários atributos que, ou não foram declarados ou pertence a uma classe que não foi criada ou é porque não foi o import da classe usada! Eu tentei importar alguns pacotes, mas não resolveu o problema! Se puder ver depois é só escrever! Esse exemplo irá gerar o que eu havia dito acima?
Abraços!
Vamos ver se consigo explicar:
- No exemplo, estou utilizando o Swing Application Framework e sua classe Task, que é uma subclasse do SwingWorker…ou seja, estou abrindo uma thread separada para realizar a animação do splash screen enquanto a thread principal carrega os dados do aplicativo (em factory do jpa, arquivos de relatórios, entre outros…)
- Esqueça os parâmetros Application e View… não interessam neste caso…
- O método setSplashScreen atualiza a barra de progresso do splash screen, desenhando um retângulo colorido e com um texto (a string passada como parâmetro).
Caso ainda não consiga utilizar, esse link pode ser de alguma utilidade:
http://java.sun.com/developer/JDCTechTips/2005/tt1115.html
Neste final de semana vou tentar implementar este exemplo, agradeço a você Vinícius pela ajuda até aqui!
Agradeço desde já ! 
Se alguém tiver outra idéia, também pode escrever aqui para que possamos escolher o melhor caminho!
Um abraço!
Cara, estou tentando fazer o splash mas nunca consegui, vc poderia me passar o que vc fez, preciso de ajuda;
Alguem já consegiu usar o SplashScreen do java 6 ( Java Web Start ) ? Eu não consegui, local roda mais utilizando o jnlp ! nada…
achei isso : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6510416