Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vanilson

[Resolvido] ProgressMonitor

Recommended Posts

Bem pessoal, estou a tentar usar o ProgressMonitor para ele carregar antes de salvar os dados ou seja antes de ele chamar o metodo inserir para salvar os dados o que está a acontecer é que ele manda primeiro a mensagem a confirmar que salvou os dados e depois é que manda o ProgressMonitor, eis o codigo:

 

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 += 20;
								monitor.setProgress(cont);
								//if(cont >= 250)
									//timer.stop();
								
									//inserir();
								timer.stop();
								inserir();
								//timer.stop();
										
								
							}
							
						}
						
					});
					
				}
			timer.start();
			
			}
			
			//inserir();
			//visualizartodos();
		}
	
	}
Método inserir

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);
		}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem pessoal, resolvi o meu problema usando Thread:

public void actionPerformed(ActionEvent evento)
{
	if(evento.getSource() == salvar)
	{
		final ProgressMonitor pm = new ProgressMonitor(this, "A salvar dados...", "", 0, 100);  
		final Thread thread = new Thread(new Runnable() {  
                public void run() 
                {  
                   for (int i = 0; i <= 100; i++) 
                   {  
                        pm.setProgress(i);  
		        pm.setNote(i + " %");  
                        try 
			{  
				Thread.sleep(30);  		
                        } 
			catch (InterruptedException ex) 
			{  
				JOptionPane.showMessageDialog(null,"Erro ao salvar  os                         dados","Candidato",JOptionPane.ERROR_MESSAGE);
                        }  
                   }  
				 inserir();
              }  
           });   
           thread.start();  
	   }
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.