olá pessoal
carrego meu table model da seguinte maneira
int contador = 1;
TableModelConsultaClassificacao.setRowCount(0); // limpa grid
Connection con = Conexao.obterConexao();
String sql = "";
sql += " select " ;
sql += " nome ... " ;
try {
Statement stm = con.createStatement();
ResultSet rst = stm.executeQuery(sql);
while (rst.next()) {
Vector linhagrid = new Vector();
linhagrid.addElement(contador);
linhagrid.addElement(rst.getString(1).trim());
TableModelConsultaClassificacao.addRow(linhagrid);
contador++;
}
TableModelConsultaClassificacao.fireTableDataChanged();
stm.close();
con.close();
rst.close();
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, "ConsultaClassificacao - Erro 1 ! \n" + e1.getMessage(), "Operador", JOptionPane.ERROR_MESSAGE);
} catch (Exception e2) {
JOptionPane.showMessageDialog(null, "ConsultaClassificacao - Erro 2 ! \n" + e2.getMessage(), "Operador", JOptionPane.ERROR_MESSAGE);
}
como faço agora para ordenar ele, conforme minhas necessidades, por exemplo
o maior valor da coluna 3 com o maior valor da coluna 4 com o menor valor da coluna
obrigado
E aí, marcoscorso!
Cara, porque você não faz o seu TableModel tipado? Você tá pegando valores aleatórios do seu ResultSet e colocando dentro.
Você pode fazer o seu método nas classes DAO para recuperar a coleção de objetos:
[Suponhamos que sejam objetos Pessoa]
[code]public List recuperarPessoas() throws SQLException {
Connection entidadeConnection = Conexao.obterConexao();
String sentenca = "SELECT * FROM PESSOAS";
Statement entidadeStatement = entidadeConnection.createStatement();
ResultSet entidadeResult = entidadeStatement.executeQuery(sentenca);
List<Pessoa> entidadePessoas = new ArrayList<Pessoa>();
while (entidadeResult.next()) {
entidadePessoas.add(recuperarObjeto(entidadeResult));
}
entidadeResult.close();
return entidadePessoas;
}
private Pessoa recuperarObjeto(ResultSet entidadeResult) throws SQLException {
// monta o seu objeto e retorna ele.
}[/code]
Agora, se você quer ordenar por NOME, você faz sua consulta ordenando pelo campo nome.
Se você quer ordenar por DATA DE NASCIMENTO, você faz sua consulta ordenada pela data de nascimento.
E assim sucessivamente!
Quando você recuperar sua coleção ordenada do modo que você quer, você passa para o seu TableModel.
[code]public class PessoasTableModel extends AbstractTableModel {
private List<Pessoa> entidadePessoas;
public atualizarTabela(List<Pessoa> entidadePessoas) {
this.entidadePessoas = entidadePessoas; // altera sua coleção atual...
fireTableDataChanged(); // avisa ao modelo que você alterou os dados e ele redesenha a tabela.
}
}[/code]
Espero ter ajudado,
fique com Deus! 