jTable: Como posicionar na linha de desejada e como aplicar filtros?

3 respostas
B

E ae pessoal. BLZ?

Estou iniciando meus estudos em JAVA e estou com algumas duvidas nesse componente.

1º: Como faço para posicionar o foco ( deixar selecionada ) uma linha qualquer ?

2º: Tem alguma classe que possua algum método, ou interface, para realizar buscas no conteudo do modelo da jTable ?

Bom, eu estou herdando de um AbstractTableModel para implementar a lista internamente e usei TableRowSorter passando a instancia dessa minha classe que herdei. Então a ordenação ja está OK. Está faltando agora uma forma de pesquisar o conteudo da tabela e, se achar, posicionar na linha em que o conteudo pesquisado se localiza.

VLW

3 Respostas

B

Vou colocar aki a classe que implementei para representar o Model que o jTable necessita:

package teste;

import java.util.List;
import javax.swing.table.AbstractTableModel;

public class ModeloTabela extends AbstractTableModel
{
    // Atributos da classe
    private List funcionarios;    
    
    // Constantes
    public final int POSICAO_COLUNA_ID = 0;
    public final int POSICAO_COLUNA_MATRICULA = 1;
    public final int POSICAO_COLUNA_NOME = 2;
    public final int POSICAO_COLUNA_CARGO = 3;    
    
    public final String TITULO_COLUNA_ID = "ID";
    public final String TITULO_COLUNA_MATRICULA = "Matrícula";
    public final String TITULO_COLUNA_NOME = "Nome";
    public final String TITULO_COLUNA_CARGO = "Cargo";        
    
    
    public final String TXT_POSICAO_INVALIDA = "Posição Inválida";

    public ModeloTabela(List funcionario)
    {
        this.funcionarios = funcionario;
    }
    
    // Metodos publicos
    
    public List getFuncionarios()
    {
        return funcionarios;
    }

    public void setFuncionarios(List funcionarios)
    {
        this.funcionarios = funcionarios;
    }    
    
    // Metodos herdados de AbstractTableModel
            
    public int getColumnCount()
    {
        // ID, matricula, nome, cargo
        return ( 4 );
    }

    public int getRowCount()
    {
        return ( getFuncionarios().size() );
    }

    public Object getValueAt(int rowIndex, int columnIndex)
    {
        Funcionario funcionario = (Funcionario) getFuncionarios().get(rowIndex);
        
        if ( null == funcionario )
        {
            return ( null );
        }
            
        switch (columnIndex)
        {
            case POSICAO_COLUNA_ID:
            {
                return (funcionario.getId());
            }

            case POSICAO_COLUNA_MATRICULA:
            {
                return (funcionario.getMatricula());
            }

            case POSICAO_COLUNA_NOME:
            {
                return (funcionario.getNome());
            }

            case POSICAO_COLUNA_CARGO:
            {
                return (funcionario.getCargoOcupado().getNome());
            }

            default: return ( null );
        } // switch        
    }
    
    // Metodos herdados de TableModel
    
    @Override
    public String getColumnName(int column)
    {
        switch (column)
        {
            case POSICAO_COLUNA_ID:
            {
                return ( TITULO_COLUNA_ID );
            }

            case POSICAO_COLUNA_MATRICULA:
            {
                return ( TITULO_COLUNA_MATRICULA );
            }

            case POSICAO_COLUNA_NOME:
            {
                return ( TITULO_COLUNA_NOME );
            }

            case POSICAO_COLUNA_CARGO:
            {
                return ( TITULO_COLUNA_CARGO );
            }

            default: return ( null );
        } // switch        
    }
    
}

VLW

kicolobo

Para selecionar um intervalo qualquer dentro do JTable, use o método setRowSelecitonInterval do objeto JTable

Para aplicar filtros, ordenação, etc.
Veja esta página:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

B

kicolobo:
Para selecionar um intervalo qualquer dentro do JTable, use o método setRowSelecitonInterval do objeto JTable

Para aplicar filtros, ordenação, etc.
Veja esta página:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

Blz kicolobo. Obrigo pela ajuda.

Criado 11 de fevereiro de 2008
Ultima resposta 11 de fev. de 2008
Respostas 3
Participantes 2