Galera olha só… possuo um formulário que contém alguns gráficos em jfreechart ao carregar o formulário chamo dois métodos AtualizaDados() e slide(), dentro destes métodos possui ActionListener que roda uma instrução a cada x segundos, está funcionando tudo direitinho porém a tela fica toda travada, não dá nem pra fechar (só usando CTRL+ALT_DEL), queria fazer esses métodos rodarem em background possibilitando o usuário de usar o PC normalmente com ela aberta, poderiam a me ajudar a implementar esses métodos em SwingWorker, abaixo os dois métodos da forma atual:
Método slide() responsável por trocar de aba de um JTabbedPane a cada x segundos:
//Variáveis globais
private Timer timerSlide;
private int velocidadeSlide = 40000;//Troca de aba a cada 40 segundos
//Método para a apresentação de slide entre as abas
private void slide() {
ActionListener action = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (abas.getSelectedIndex() == (abas.getTabCount() - 1)) {
abas.setSelectedIndex(0);
} else {
abas.setSelectedIndex(abas.getSelectedIndex() + 1);
}
}
};
this.timerSlide = new Timer(velocidadeSlide, action);
this.timerSlide.start();
}
Método AtualizaDados() responsável por chamar outros métodos que fazem a consulta no BD e preenche o jfreechart a cada x segundos:
//Variáveis globais
private Timer timerDados;
private int velocidadeDados = 2000;//Atualiza os rs a cada 2 segundos
private double angulo = 0;
//Metodo para atualizar a hora dos jLabels e realizar as consultas no BD para preencher o jfreechart
private void AtualizaDados() {
ActionListener action = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (txtSlide.isSelected()) {
try {
String data = dt.format(new Date());
txtData.setText(data);
angulo = angulo + 5;
graficosTotalPC();
graficosEtiq();
Embaladores(txtData.getText());
graficosPE();
graficosCIL();
graficosOUT();
carregaStatusMesa(btnMesa1, "MESA 001");
carregaStatusMesa(btnMesa2, "MESA 002");
carregaStatusMesa(btnMesa3, "MESA 003");
carregaStatusMesa(btnMesa4, "MESA 004");
carregaStatusMesa(btnMesa5, "MESA 005");
carregaStatusMesa(btnMesa6, "MESA 006");
carregaStatusMesa(btnMesa7, "MESA 007");
carregaStatusMesa(btnMesa8, "MESA 008");
carregaStatusMesa(btnMesa9, "MESA 009");
carregaStatusMesa(btnMesa10, "MESA 010");
carregaStatusMesa(btnMesa11, "MESA 011");
carregaStatusMesa(btnMesa12, "MESA 012");
carregaStatusMesa(btnMesa13, "MESA 013");
carregaStatusMesa(btnMesa14, "MESA 014");
carregaPrioridades();
carregaMinutoQualidade();
} catch (SQLException ex) {
Logger.getLogger(formDashboard.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
angulo = angulo + 5;
graficosTotalPC();
graficosEtiq();
Embaladores(txtData.getText());
graficosPE();
graficosCIL();
graficosOUT();
carregaStatusMesa(btnMesa1, "MESA 001");
carregaStatusMesa(btnMesa2, "MESA 002");
carregaStatusMesa(btnMesa3, "MESA 003");
carregaStatusMesa(btnMesa4, "MESA 004");
carregaStatusMesa(btnMesa5, "MESA 005");
carregaStatusMesa(btnMesa6, "MESA 006");
carregaStatusMesa(btnMesa7, "MESA 007");
carregaStatusMesa(btnMesa8, "MESA 008");
carregaStatusMesa(btnMesa9, "MESA 009");
carregaStatusMesa(btnMesa10, "MESA 010");
carregaStatusMesa(btnMesa11, "MESA 011");
carregaStatusMesa(btnMesa12, "MESA 012");
carregaStatusMesa(btnMesa13, "MESA 013");
carregaStatusMesa(btnMesa14, "MESA 014");
carregaPrioridades();
carregaMinutoQualidade();
} catch (SQLException ex) {
Logger.getLogger(formDashboard.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
};
this.timerDados = new Timer(velocidadeDados, action);
this.timerDados.start();
}