JTable() avancado

ola a todos !

coloquei um JTable() num jDialog;
tambem coloquei um JComboBox(), pra selecionar a ordem;

fiz, mais ou menos assim (vou postar bem simplificado, qquer coisa presisar posto tudo):


oBrw = new JTable();
cQuery  = "select * from tabela where ... order by ... ";
oBrw.ConectaBanco();
oBrw.execQuery(cQuery);
while( oBrw.oResultset.next() ) {
    oBrw.oResultset.getString( oBrw.oResultset.getString( cCampo ) )
}

agora as duvidas:

  1. se essa tabela tiver, vamos dizer 100.000 registros. como fazer pra performance ficar desejavel ?
  2. se eu mudar a ordem no JComboBox(), vou ter q executar a Query novamente ?

obrigado !!!

  1. Nao existe motivo plausivel pra se carregar 100.000 objetos numa JTable. Vc pode:

A) Paginar os registros (doloroso e complicado em se tratando de desktop).
B) Forçar ao usuario informar mais filtros, de maneira que ele so enxergue no maximo 100 (mais do que isso nao faz sentido, ele nao vai ficar zoiando ate achar, pra isso existem filtros).

  1. Se seu registros na JTable sao objetos, vc pode criar um Comparator para esse objeto e entao aplicar o metodo sort() da classe Collections, baseado no numero de ordem no seu caso. Dessa maneira vc permite que ele re-ordene qtos registro quiser pra so depois salvar tudo. Se for fazer re-executando a query, pra cada registro que ele alterar vc vai te que comitar isso e re-executar a query (custoso e trabalhoso);

Paginar não é tão dificil assim quando voce tem algo pronto.

li…reli e treli… mas nao entendi bem…rss

vamos por passo, ok ?

talvez eh melhor primeiro pelo (q parece ser mais facil - hehehe):
2) se eu mudar a ordem no JComboBox(), vou ter q executar a Query novamente ?

poderia postar um bloco de fonte, pra melhor poder entender, por favor ?

obrigado !!!

Com aquela tabela voce precisa trabalhar com o ObjectTableModel um TableModel que trabalha bem parecido como voce faria com uma List.