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?
Como pesquisar uma linha na JTable?
L
2 Respostas
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 só 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