[OFF] DATATABLE PARA JAVA

ACCIOLLY 23/10/2015 11:49:51
#452957
Bom dia pessoal!
Me desculpem qualquer coisa se estou criando este tópico da forma errada. é porque não sei como faço pra criar um artigo. Quando vou em artigos ou codigos fonte não tenho opção para criar.
Sempre pesquisei em foruns na internet sobre a questão de existir DataTable pra java. Infelizmente não encontrei nenhuma. Então comecei a quebrar a cabeça pra conseguir criar um DataTable o mais semelhante possível do .Net.
Espero que isso satisfaça as necessidades dos futuros leitores que como eu procurou e não achou pelo tema. E como o VBMANIA é bem conceituado, esses mesmos leitores acharão esse post quando fizer uma pesquisa no google.

esta é a classe:

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.DefaultTableModel;

/**
*
* @author ACCIOLLY
*/
public class DataTable {

/**
*Este método é responsável por gerar um DefaultTableModel a partir de um sql.ResultSet
* @param RS Passar como parametro um sql.ResultSet
* @return model DataTableModel populado com os dados recuperados do ResultSet
* @throws SQLException
*/

public DefaultTableModel Fill(ResultSet RS) throws SQLException{

//Move para o ultimo registro do ResultSet
RS.last();

//cria um vetor bidimensional com as mesmas dimensões do ResultSet
String[][] vetor = new String[RS.getRow()][RS.getMetaData().getColumnCount()];

//move para o primeiro registro do ResultSet
RS.first();

//Alimenta o Vetor com os dados do ResultSet
for(int i = 0; i < vetor.length; i++){
for(int j = 0; j < vetor[i].length; j++){
vetor[i][j] = RS.getString(j + 1);
}
RS.next();
}

//cria um vetor unidimensional com a quantidade de colunas do ResultSet
String headers[] = new String[RS.getMetaData().getColumnCount()];

//Alimenta o vetor com o nome das colunas do ResultSet
for(int i = 0; i < headers.length;i++){
headers[i] = RS.getMetaData().getColumnLabel(i+1);

}

//fecha o resultSet
RS.close();

//Cria um novo objeto DataTableModel
DefaultTableModel model = new DefaultTableModel(new Object[][]{},headers);

//apaga todas as linhas
model.setNumRows(0);

//adiciona linhas com os registros do vetor bidimensional
for(int i = 0; i < vetor.length; i++){
String linha[] = new String[vetor[i].length];//este vetor é criado dentro do loop pra ser alimentado logo abaixo
for(int j = 0; j < vetor[i].length; j++){
linha[j] = vetor[i][j];//aqui ele é alimentado
}

model.addRow(linha);//a linha é adicionada no modelo
}

return model;
}



}


Estão livres pra melhora-la ou adapta-la a gosto!

qualquer dúvida sobre ela estamos aí
MOUSER 26/10/2015 14:50:11
#453096
Resposta escolhida
Acabei de enviar seu codigo para avaliação para ser registrado como um artigo no VBMANIA para facilitar ainda mais a pesquisa para quem necessita ACCIOLLY, Breve ele estará no ar.
ACCIOLLY 12/11/2015 08:47:55
#453753
Opa valeu aí amigão
Tópico encerrado , respostas não são mais permitidas