JProgressBar

Olá Pessoal!!!

Preciso fazer um programinha que faz uma consulta em um banco de dados, e apartir dessa consulta seja gerado um xml para que possa ser aberto em um brownser... até ai tudo bem!!! Só que tá faltando uma bendita barrinha de progresso. Enquanto o usuário estiver efetuando a consulta, ele possa ter noção em que pé que tá. Procurei pela net ... tentei implementar mas não deu certo.... =/

aqui tá o evento do botão que vai chamar a classe que lista todos os contatos do banco:

btListar.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ ListarTudo lt = new ListarTudo(); lt.setVisible(true); } });

aqui tá a classe que vai fazer a consulta e gerar o xml:

[code]
import java.awt.BorderLayout;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.Types;
import java.util.Vector;
import javax.swing.JFrame;

public class ListarTudo extends JFrame {

public ListarTudo() {
	this.getContentPane().setLayout(new BorderLayout());
	Vector<Vector<String>> dados = new Vector<Vector<String>>();
	StringBuffer sb = new StringBuffer();
	
	try {
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		Connection con = DriverManager.getConnection("jdbc:odbc:agenda");
		Statement st = con.createStatement();
		ResultSet rs = st.executeQuery("select * from tbpessoa");
		ResultSetMetaData rsmd = rs.getMetaData();
		while (rs.next()) {
			Vector<String> reg = new Vector<String>();
			for (int i = 1; i <= rsmd.getColumnCount(); i++) {
				switch (rsmd.getColumnType(i)) {
				case Types.VARCHAR:
					reg.add(rs.getString(i));
					break;
				case Types.INTEGER:
					reg.add(rs.getString(i) + "");
					break;
				case Types.DOUBLE:
					reg.add(rs.getString(i) + "");
				}
			}
			dados.add(reg);
		}
		
		//gerando o xml...
		sb.append("<?xml version='1.0' encoding='UTF-8'?>");
		sb.append("<contatos>");
		for (int i = 0 ; i < dados.size(); i++) {
			Vector<String> obj = dados.get(i);
			sb.append("<contato>");
			sb.append("<registro>" + obj.get(0) + "</registro>");
			sb.append("<nome>" + obj.get(1) + "</nome>");
			sb.append("<telefone>" + obj.get(2) + "</telefone>");
			sb.append("<email>" + obj.get(3) + "</email>");
			sb.append("<datanasc>" + obj.get(4) + "</datanasc>");
			sb.append("</contato>");				
		}
		sb.append("</contatos>");
		
		//gravando o xml...
		File file = new File("c:\arquivo.xml");
		try {
			FileWriter fw = new FileWriter(file);
			fw.write(sb.toString());
			fw.flush();
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	} catch (Exception e) {
		e.printStackTrace();
	}					
	
	setTitle("Gerando XML");
	setBounds(540, 200, 440, 290);
	setVisible(true);
}

}[/code]

Valeu…

Você precisa saber onde começa e onde termina seu arquivo para então determinar o progresso da barra.

Durante a leitura você vai contando a quantidade percorrida e já sabendo da quantidade final dará para tirarmos a porcentagem e então configurar na jProgressBar.

Lembre-se que essa execução deve ser trabalhada em thread para que atualize sempre o conteúdo da progress.

Ok Grinvon!!!.. deu certo…
O que eu não gostei é que a barra fica indo pra lá e pra ca enquanto carrega… e eu queria que fosse progressivo mesmo…