Barra de Processo não funciona

Bom dia caros colegas.

Eu criei um sistem pequeno para conver ter um arquivo, esse precesso “dependendo do tamanho do arquivo” demora um pouco. Coloquei uma jProgressBar para monitorar a evolução da converção, mas minha barra não está correndo enquanto o arquido é convertido, ela só corre direto para o final , quanto termina a converção.
Alguem pode me ajudar a resolver esse problema?.

Obrigado.

Bom cara, não sei ao certo como você construiu isso no seu programa, até porque não vi seu código para poder saber com precisão o que seria o seu problema, mas você está usando Threads para poder manipular o seu componente? acho que seria o ideal usar…

[]'s.

Oi!!! Não sei se é mais ou menos isso que vc quer, mas vou colocar um exemplo que tenho.Boa sorte :slight_smile:

[code]public class JanelaLoading extends JDialog{
static JProgressBar pbLoading;
private JLabel lLoading;

public JanelaLoading(){
	setLayout(null);

	this.setSize(428, 125);
	this.setLocation(400, 300);
	initGUI();		
	setVisible(true);
	Load l = new Load(this);
	l.start();

}

	private void initGUI() {		
		pbLoading = new JProgressBar();
		pbLoading.setVisible(true);
		pbLoading.setStringPainted(true);
		getContentPane().add(pbLoading);
		pbLoading.setBounds(21, 42, 336, 28);
		pbLoading.setString("0 %");

		lLoading = new JLabel();
		getContentPane().add(lLoading);
		lLoading.setText("Loading...");
		lLoading.setBounds(14, 14, 105, 28);
}

}
[/code]

e a classe Load:

[code]public class Load extends Thread{

/**
 * Janela que vai ser alterada com a thread.
 */
JanelaLoading janela;

/**
 * Construtor da classe.
 * @param j janela que contem o JProgressBar.
 */
public Load(JanelaLoading j){
	this.janela=j;
}

/**
 * método que roda a thread para movimentar a JProgressBar.
 */
public void run()
{
	int i = 1;
	while (i < 6) {
		JanelaLoading.pbLoading.setValue(20*i);
		JanelaLoading.pbLoading.setString(20*i + " %");			
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		i++;	
	}
	janela.dispose();
	new JanelaPrincipal();
}

}
[/code]
Espero ter ajudado!

Bom , meu código está aí: eu não coloquei nada referente a barra de prosesso, pois queria ajuda de vcs sobre a melhor forma de usar essa barra nesse programinha. hoje quando eu clico no botão iniciar para executar esse código, minha interface está travando e só destrava quando o programa termina a execução.

[code] try{

        BufferedReader input = new BufferedReader(new FileReader("C:\\Gerador\\HORA300.txt"));
        
        
        try{
            String line = null;
            FileWriter arquivo;
            PrintWriter escrever;
            
            arquivo = new FileWriter("C:\\Gerador\\MODELO.txt");
            escrever = new PrintWriter(arquivo);
            line = input.readLine();
            
            String documento = "";
            
            while (line != null){
                
                documento = documento + line.substring(0,22);
                documento = documento + "\n";
                line = input.readLine();
            }
            escrever.append(documento.replaceAll("\t"," "));
            escrever.close();
            
            
        }catch(java.io.IOException ioex){
            
        }finally{
            input.close();
        }
    }catch (IOException ioe){
        
    }
    
    try {
        BufferedReader entrada = new BufferedReader(new FileReader("C:\\Gerador\\MODELO.txt"));
        try{
            
            String strCodigo = "";
            String strData = "";
            String strHora = "";
            String linha = null;
            File arquivo2;
            PrintWriter escrever2;
            
            arquivo2 = new File("C:\\Gerador\\HORASAF.txt");
            escrever2 = new PrintWriter(arquivo2);
            
            Scanner scanner = new Scanner(entrada);
            
         
            while (scanner.hasNext()){
                //  int numero = Integer.parseInt(scanner.next());
                // strCodigo = String.format("%4s",numero);
                strCodigo = scanner.next();
                strData = scanner.next();
                strHora = scanner.next();
                
                if (strCodigo.length() == 1){
                    strCodigo = "000" + strCodigo;
                }
                if (strCodigo.length() == 2){
                    //strCodigo += "  ";
                    strCodigo = "00" + strCodigo;
                }
                if (strCodigo.length() == 3){
                    // strCodigo += " ";
                    strCodigo = "0" + strCodigo;
                }
                escrever2.println(strCodigo+ " "+strData+" "+strHora);
                
            }
            escrever2.close();
            
            JOptionPane.showMessageDialog(null,"Arquivo gerado!");              
            this.dispose();
            
            
        }catch(IOException ioex){
            ioex.printStackTrace();
        }
    }catch(IOException ioex){
        ioex.printStackTrace();
    }
    [/code]