Procura

8 respostas
sks.Rafael

Bom dia!!!
Criei uma JTable…
Fora da tabela, criei um botão Pesquisar…
Ao colocar o nome no TEXTFIELD “NOME”, e apertar em Pesquisar, ele pinta a linha no qual está este nome que eu digitei…
Agora queria saber como eu faço para:

  • Se eu digitar meia palavra no TEXTFIELD “NOME” (EX: Tabel (No caso seria a palavra Tabela)), ele reconhecer a palavra quando eu apertar no botão pesquisar. Quero que o usuário não precise digitar toda a palavra…digitando metade dela, já reconhecer a palavra! Entenderam??

Se poderem me ajudar ficarei grato!
Abraços :wink:

8 Respostas

von.juliano

Você deve estar utilizando o método equals, ou o equalsIgnoreCase para comparar o que a pessoa digita com o conteúdo da tabela não é? Então para fazer o que vc quer, é só utilizar o método contains:

if("Juliano".contains("Ju"))
	System.out.println("OK!");

Flw! :mrgreen:

sks.Rafael

Sim…estou usando equals!!!
Mas o problema, eh que nao eh soh um nome!!!
São varios nomes…
Como vou tratar esses varios nomes dentro do contains???

von.juliano

Como assim são vários nomes? Tipo um por cada linha da tabela, ou muitos numa só linha? Independente disso, vc tem que ir varrendo a tabela e verificando todos os valores e no caso pintando as linhas encontradas.

Não entendi direito qual é a dificuldade :XD: Pode dar mais uns detalhes? Flw!

sks.Rafael

Não não…
Cada linha tem um nome!!!
Quero que o usuario nao precise completar toda a palavra para o programa achar!
Digitando meia palavra e apertando no botão pesquisar, ele já reconheça a palavra e pinte a linha que se encontra essa palavra!!

henry.everton

tipo… dica… só tenho a lógica na cabeça…

e se vc utilizar o substring de 0 ao variavel.length e depois usa o equals para comparar com a tabela… tipo

x= y.substring(0,y.length);
depois

x.equals(x);

ai acho q ele pega o conteudo de x e usa o equals para comparar…

nunca testei sou novo… mas a lógica acho q ia dar certo.

von.juliano

Entao, é só fazer um loop q passa por todas as linha da tabela, aí vc faz um

String item = ""; for(int linha=0; linha < tabela.getModel().getRowCont(); linha++) { item = tabela.getModel().getValueAt(linha, colunaDosNomes); if(item.contains(txtField.getText())) pintaLinha(linha); }
Acho que é só isso! Vc vai verificando linha por linha se nela contém o texto digitado no txtField. Blz!

sks.Rafael

Juliano…Não funcionou seu código!
na linha item = tabela.getModel().getValueAt(linha, colunaDosNomes);, é necessário fazer um cast de string!
O contains não funciona quando é String!

Mas valeu mesmo assim!! Se tiveres outra sugestão, será bem vinda!

von.juliano

Como assim não funciona?
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#contains(java.lang.CharSequence)

Criado 16 de maio de 2007
Ultima resposta 21 de mai. de 2007
Respostas 8
Participantes 3