Pessoal, estou a tentar usar o progressmonitor, fiz um teste simples ai ele funcionou, agora tentei adptar realmente naquilo que eu precisava, eu estou tentar verificar se ele já atingiu o seu valor maximo com o getMaximum() se assim for então ele chama um outro metodo inserir, o que está a acontencer é que ele primeiro salva o valor é depois manda a mensagem de erro e manda ao mesmo tempo o progressmonitor, eis o codigo:
public void inserir()
{
Gravadorpessoa pessoa = new Gravadorpessoa();
Pessoa modelo = new Pessoa();
modelo.setNome(txtnome.getText().trim());
modelo.setIdade(Integer.parseInt(txtidade.getText()));
modelo.setTelefone(Integer.parseInt(txttelefone.getText()));
modelo.setLocalidade(txtlocalidadademorada.getText().trim());
modelo.setBairro(txtbairromorada.getText().trim());
modelo.setRegistocriminal((String)listaregistocriminal.getSelectedItem());
//modelo.setBoletimsanidade(txtboletimsanidade.getText().trim());
//modelo.setEstadocivil(txtestadocivil.getText().trim());
modelo.setNomepai(txtnomepai.getText().trim());
//modelo.setOcupacaopai(txtocupacaopai.getText().trim());
modelo.setNomemae(txtnomemae.getText().trim());
modelo.setNumerocartaconducao(Integer.parseInt(txtnumerocartac.getText()));
modelo.setNomepai(txtnomepai.getText().trim());
modelo.setOcupacaopai(txtocupacaopai.getText().trim());
modelo.setNomemae(txtnomemae.getText().trim());
//modelo.setTipocartaconducao(txttipocartac.getText().trim());
modelo.setLocal(txtlocalnaturalidade.getText().trim());
modelo.setComuna(txtcomunanaturalidade.getText().trim());
//modelo.setMunicipio(txtmunicipio.getText().trim());
//modelo.setProvincia((String) provincia.getSelectedItem());
try
{
boolean valida = pessoa.gravar( modelo );
if(valida)
JOptionPane.showMessageDialog(null, "Candidato cadastrado com sucesso","Cadastro", JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null, "Já existe um candidato com o mesmo codigo","Cadastro", JOptionPane.ERROR_MESSAGE);
}
catch( IOException e )
{
JOptionPane.showMessageDialog(this, "Erro ao cadastrar o candidato","Cadastro", JOptionPane.ERROR_MESSAGE);
}
}
public void actionPerformed(ActionEvent evento)
{
if(evento.getSource() == salvar)
{
Component parent = (Component) evento.getSource();
monitor = new ProgressMonitor(parent, "A salvar dados do candidato", "", 0, 200);
cont = 0;
if (monitor != null)
{
if (timer == null)
{
timer = new Timer(250, new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (monitor == null)
return;
if (monitor.isCanceled())
{
JOptionPane.showMessageDialog(null, "Processo cancelado","Candidato", JOptionPane.INFORMATION_MESSAGE);
timer.stop();
}
//if(monitor.getMaximum() >= 200)
//inserir();
else
{
cont += 3;
monitor.setProgress(cont);
if(monitor.getMaximum() >= 200)
inserir();
}
}
});
}
timer.start();
}
//inserir();
//visualizartodos();
}
}