olá pessoal! estou com o seguinte problema:
-as buscas em um banco de dados de clientes as vezes são demoradas, podem retornar + de 20.000 clientes duma vez… então resolvi criar uma janela de “Aguarde…” algo semelhante a um Splash que eu chamo antes de fazer uma busca no banco só que a janela só renderiza completamente depois que a busca termina…, ou seja, aparece só o contorno dela e quando o programa pára de processar o query é q ela aparece por completo.
já fiz um teste até na propria janela onde eu mando mudar o texto de um label e depois rodar um loop… acontece que o loop roda e só depois o texto muda…
use THREAD, eu tive o mesmo problema com um processo de scan …
ele exibia a tela pela metade e só quando terminava o scan que exibia o resto já falando pra fechar…
extenda o thread e crie multiprocessamento com thread… é a solução
publicclassseunomeextendsThread{
Coloque o processamento no Run
publicvoidrun(){processamentoquetravatudo...
Agora é só ativar a thead que ele chama a rotina vampira…
abraços
mendonca_ime
fiz um bacalhau aki mas funcionou…
AbrirSplash as = new AbrirSplash();
Thread t = new Thread(as);
t.start();
SetVectorData svd = new SetVectorData();
svd.nome = nome;
svd.email = email;
svd.status_cliente = status_cliente;
svd.dataDe = dataDe;
svd.dataAte = dataAte;
svd.id_vendedor = id_vendedor;
Thread t2 = new Thread(svd);
t2.start();
e as classes ficaram:
class SetVectorData extends Thread {
String nome = null;
String email = null;
Integer id_vendedor = null;
Integer status_cliente = null;
String dataDe = null;
String dataAte = null;
public void run() {
vDados = setVectorData(stm, nome, email, id_vendedor, status_cliente, dataDe, dataAte);
tableModel = new MyTableModel(vDados, vColunas);
jTable.setModel(tableModel);
FecharSplash fs = new FecharSplash();
Thread t3 = new Thread(fs);
t3.start();
}
}
class AbrirSplash extends Thread {
public void run() {
janelaAguarde.show();
}
}
class FecharSplash extends Thread {
public void run() {
janelaAguarde.hide();
}
}
funcionou… mas mesmo assim num é 100% tipo essa janela é só um dialog com um texto (que é instanciada na criação do frame), qnd eu boto figura as vezes funciona e as vezes não…
mas mesmo assim obrigado!