Busca em JTable

2 respostas
guilhermeslk

Pessoal,
Estou desenvolvendo meu primeiro sistema comercial em Java e estou tenho algumas dúvidas que acho que vocês podem me ajudar a solucionar.
Hoje eu estava desenvolvendo um módulo simples de cadastro e escrevi um método que a partir de um código de produto busca o seu registro correspondente na JTable e move o cursor até ele. Esse método foi feito de maneira bem simples, utilizei um while que percorre todos os registros da tabela comparando com o código buscado até encontrar sua primeira ocorrência. Minhas dúvidas são as seguintes:

  1. Essa seria a melhor maneira de implementar a funcionalidade? Não corro o risco de ter uma enorme problema de performace se trabalhar com tabelas mto grandes (pelo fato da busca ser mto tosca e correr a tabela inteira sem critério)? Qual seria uma solução alternativa? Eu pensei em ir fazendo filtros através de selects e remontando a tabela…

  2. Queria fazer uma classe herdando da JTable e implementar nela este método. Eu até cheguei a fazer isso, mas esbarrei em um grande problema: o netbeans não deixa alterar a declaração da minha JTable e portanto não posso colocar o tipo que eu criei. Existe alguma solução pra isso?

Obrigado

2 Respostas

R

1 - Sua solução por busca linear não é necessariamente ruim, tudo depende do desempenho da fonte de dados que você está percorrendo. Os dados do TableModel da JTable estão numa fonte veloz (por exemplo, um ArrayList contendo objetos totalmente carregados em memória)? Eu, pessoalmente, prefiro filtrar via SELECT, justamente para evitar problemas no caso de tabelas muito grandes.

2 - O NetBeans permite que você crie componentes personalizados - você pode criar uma classe derivada de JTable, instalá-la na sua Paleta de Componentes e sair usando onde for necessário. Se preferir continuar usando a JTable padrão, pode incluir código personalizado de construção através do Editor de Propriedades. Outra saída é usar o projeto JIDE Common Layer, que oferece recursos para realizar buscas em JTable’s:

http://www.jidesoft.com/products/oss.htm

Marky.Vasconcelos

Da uma olhada aqui.

SelectTable

Criado 30 de julho de 2009
Ultima resposta 31 de jul. de 2009
Respostas 2
Participantes 3