Como pesquisar uma linha na JTable?

2 respostas
L

Preciso fazer uma pesquisa na tabela.Eu queria digitar na prória célula o que estou buscando e a linha correspondente seja selecionada.
Alguém sabe como fazer isso?

2 Respostas

gqferreira

Vamos ver se posso te ajudar…
Vou colocar uma parte do meu projeto…

miLocalizar.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				String placaProcurar = JOptionPane.showInputDialog(null, "Digite a placa do veículo: ", "Placa", JOptionPane.QUESTION_MESSAGE);
				Metodos.procurarGaragem(placaProcurar);
			}
		});

Isso é um jMenuItem que invoca um método da classe Metodos.

public static void procurarGaragem(String placaProcurar)
	{
		
		
			DefaultTableModel dtm = (DefaultTableModel)Frame.tableGaragem.getModel();
			int linhas = Frame.tableGaragem.getRowCount();//obtendo a quantidade de linhas da tabela
			int indiceLocalizado=-1;
			for (int i=0;i<linhas;i++)
			{
				
				
				if (dtm.getValueAt(i,0).equals(placaProcurar))//aqui estou procurando a String que a outra classe enviou para este método e pesquisando sempre na coluna 0 (zero) e na linha i (i é a ordem do laço, essa variável se auto incrementa a cada laço)
				{
					indiceLocalizado = i;//indíceLocalizado será o número da linha selecionar na tabela. Ela começa valendo -1, ese if  ocorre uma vez e para saber se ele ocorreu o indiceLocalizado tem que ser maior que -1
				}
			}
			if (indiceLocalizado<0)
				JOptionPane.showMessageDialog(null,"Este veículo não está na garagem.", "Veículo inexistente", JOptionPane.INFORMATION_MESSAGE);
			else
				Frame.tableGaragem.setRowSelectionInterval(indiceLocalizado,indiceLocalizado);//Isso é para selecionar na tabela a linha que tem o mesmo número que a variável indiceLocalizado. Por exemplo: imagine que a variável indiceLocalizado vale 5, leia esta linha como: Na classe Frame, na tableGaragem selecione o intervalo de 5 à 5. Poderia ser valores diferentes também, por exemplo de 5 à 10, você teria 5 linhas selecionadas.
		
	}

Com isso dá para fazer algumas modificações e inserir os dados na própria célula da tabela.

Espero ter ajudado! :thumbup: :thumbup:

L

Valeu d+++!
Acho q isso resolve meu problema!

Mto obrigado!

Criado 10 de janeiro de 2009
Ultima resposta 12 de jan. de 2009
Respostas 2
Participantes 2