Como filtrar uma tabela atravez de um text

Boa tarde, eu tenho a seguinte duvida, tenho uma tabela que é preenchida pelo banco de dados, porem necessito fazer um filtro nela atravez de um Text, e infelizmente não tenho a minima nossão de como faço tal coisa alguem poderia me passar um tutorial , algo do tipo…

Agradeço

Como assim? Você quer que o sistema mostre sugestões enquanto o usuário digita o dado no textbox?

sim eu quero que quando digite no text vai filtrando na tabela, como se fosse um like, porem eu faço tudo no banco por hibernate e criteria acho que nao resolveria isso correto?

guialeixo
tente assim

    /**
     * Filtra os registros exibidos na tabela.
     */
    public void filtrarNomeNaTabela() {
        try {
            if (dtmClientes.getRowCount() > 0) {
                sorter.setRowFilter(RowFilter.regexFilter("(?i)" + jtfNome.getText()));
            }
        } catch (Exception ex) {
            new ExibirExcessao(null, true, ex).setVisible(true);
        }
    }

no caso meu dtmClientes eh meu default table model
vc pode colocar sua JTable aki ok

ou voce pode fazer assim tmb …

    public void filtrarNomeNaTabela() {
        TableRowSorter sorter = new TableRowSorter(tabelaModeloAssociados);
        jtListaAssociados.setRowSorter(sorter);
        String texto = jtfFiltarNomeEmpregado.getText();
        if (texto.length() == 0) {
            sorter.setRowFilter(null);
            JOptionPane.showMessageDialog(null, "Você Deve Informar um Valor!!!", "AVISO - Erro", JOptionPane.ERROR_MESSAGE);
        } else {
            try {
                sorter.setRowFilter(RowFilter.regexFilter("(?i)" + texto));
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, "Empregado Não Encontrado!!!", "AVISO - Erro", JOptionPane.ERROR_MESSAGE);
            }

        }

    }

espero q ajude
T+

Cara pra falar a verdade nao ajudou muito nao =x

euu to seguindo o seguinte,

evento do text

filterServer.addKeyListener(new KeyListener(){ @Override public void keyPressed(KeyEvent e) { int a = e.keyCode; if (a == SWT.F5) { filterFind(filterServer.getText()); } } @Override public void keyReleased(KeyEvent e) { } });

metodo para o evento

private void filterFind(String name){ List<Server> itemsServerFilter = serverDao.getServerFilter(name); for(Server s : itemsServerFilter){ itemServer = new TableItem(tableServer,SWT.NONE); itemServer.setText(new String[] { s.getName(), s.getIp(), s.getEnviroment().toString() }); itemServer.setData(s.getName(), s.getCode()); } }

aqui é meu metodo da classe dao

[code]public List getServerFilter(String name){
try{
logger.info(“Obtendo a lista de Servidores do banco de dados.”);

		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		
		Criteria crit = session.createCriteria(Server.class);
		crit.add(Restrictions.like("name", name+"%"));
		List results = crit.list();
									
		sessionFactory.close();
		
		logger.info("Lista de Servidores obtida com sucesso.");
		
		return results;
	}catch (Exception e){
		logger.error("Não foi possível obter a lista de Servidores.\nMotivo: " + e.getMessage());
	}
	
	return null;
}[/code]

O problema é que quando eu aperto f5 para filtrar, realmente filtra porem inclui no inclui na tabela e nao apaga os outros.
pois quando abro a tela a table ja é preenchida pelo banco de dados

Consegui era so da um removeAll e pronto deu certinho =)

private void filterFind(String name){ List<Server> itemsServerFilter = serverDao.getServerFilter(name); tableServer.removeAll(); for(Server s : itemsServerFilter){ itemServer = new TableItem(tableServer,SWT.NONE); itemServer.setText(new String[] { s.getName(), s.getIp(), s.getEnviroment().toString() }); itemServer.setData(s.getName(), s.getCode()); } }[/

agora mudei para o seguinte

filterServer.addKeyListener(new KeyListener(){ @Override public void keyPressed(KeyEvent e) { filterFind(filterServer.getText()); } @Override public void keyReleased(KeyEvent e) { } });

mas to com medo de ficar mto lento a aplicaçao sera que ficaria?