Olá galera.
Preciso de uma mão… Tenho um programa que importa um arquivo em TXT pra um banco de dados… O arquivo tem bastante linhas e isso demanda tempo do processdor… Estou tentando fazer um esquema pra quando o usuário clicar para importar o arquivo, aparece na tela um JFrame sem as bordas escrito “aguarde”.
Porém… esse JFrame só aparece depois do arquivo copiado!!! (ou seja, quando não há mais processamento).
Já tentei criar um thread pra cada um (uma que importaria o arquivo e a outra que apareceria o JFrame) e dar prioridade para o JFrame. Sem sucesso… Não sei mais o que fazer…
Segue o código
public class WaitScreen extends JFrame implements Runnable{
Thread runner;
public WaitScreen(){
}
public WaitScreen(String name) {
runner = new Thread(this, name);
runner.start();
runner.setPriority(10);
}
public void stop(){
runner.stop();
}
public void run() {
setUndecorated(true);
initComponents();
setBackground(new java.awt.Color(255, 255, 255));
this.setAlwaysOnTop(true);
this.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
JFileChooser fileChooser = new JFileChooser();
WaitScreen t = new WaitScreen("thread");
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
try{
BDDataTransfer transf = new BDDataTransfer();
transf.trasfData(selectedFile.getAbsolutePath());
}catch(Exception e){
t.stop();
//JOptionPane.showMessageDialog(null, "Erro ao importar arquivo:" + e.getMessage());
}
t.stop();
}