Duvida Thread

Prezados…

Ja pesquisei bastante aqui no GUJ mesmo, e em outras fontes, infelizmente não encontrei nada que tirasse realmente minha duvida.
O problema e o seguinte, tenho um Jframe com varias Jtable e outros componentes, atrelados ao Banco de dados, estou tentando executar meu Splash Screen quando tenho aquele pequeno delay de consulta no banco, porem o mesmo insiste em ser executado apenas quando o método de consulta no banco concluido.
Ja tentei startar diversas Threads e continuo com o mesmo problema, lembrando que preciso criar e matar a Thread toda vez que clico em algum botão.

Agradeço se alguem souber um solução.

O problema está na linha 3075.

Sem código não dá para ajudar meu jovem

O seu problema é que você tem de estudar como funciona o relacionamento das Threads com Swing. Vou dar um exemplo, só para você ver o que pode ser feito.

Oi,

>> criar e matar a Thread

Achei estranha a sua colocação. A partir do momento em que você cria sua Thread e ela não está em looping (while… isInterrupted), a thread será morta sozinha após executar seu bloco de código.

Se é que você me entende.

Tchauzin!

lpbianco, BOA TARDE

Se quiser arraste um jProgressBar ao seu frame pra testar.

Suponhetamos que temos a seguinte thread.

class ProgressBarThread extends Thread {
        @Override
         public void run() {
             jProgressBar1.setVisible(true);
             jProgressBar1.setIndeterminate(true);//coloco meu ProgressBar como indefinido, visto eu nao ter uma tarefa com tempo especifico
             jProgressBar1.setStringPainted(true);
             jProgressBar1.setString("Enviando");}
         public void interrupt(){
             jProgressBar1.setVisible(false);
             jProgressBar1.setIndeterminate(false);
             jProgressBar1.setStringPainted(false);
             jProgressBar1.setString("");}}

e tenho um botao que está em loop.

private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
for (int x=0;x<=800;x++){
           JOptionPane.showMessageDialog(rootPane,"Valor de X: "+x);           
       }
}

Podemos criar uma thread para o evento do botao.
EX:

//conteudo do botao - seu caso o insert no seu banco, ou select
class gravarnoBanco extends Thread {
    public void run() {
    ProgressBarThread TP = new ProgressBarThread();//chamo a outra thread
for (int x=0;x<=800;x++){
           //System.out.println("Valor de X: "+x);
           JOptionPane.showMessageDialog(rootPane,"Valor de X: "+x);
           
       }TP.interrupt(); //para a thread ProgressBarThread 
}}

E no botao eu chamo as duas threads.

private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
       ProgressBarThread thread1 = new ProgressBarThread();
                thread1 .start();
        
        gravarnoBanco thread2 = new gravarnoBanco();
        thread2.start();
}

ai vc pode aplicar isso na sua aplicação…