Filtro Jtable[RESOLVIDO]

Bom dia Pessoal!!
Putzzz… Probleminha

Tem Uma Jtable que contem estrada e saida de materiaiss

Cod – E/S – Data-- Produto – QUAnt – Valor
15 – E – 24/05/2010–AReia – 5 – 200,00
16 – E – 23/05/2010-- Pedra – 5 – 200,00
15 – S – 24/05/2010–AReia – -1 – 200,00
16 – E — 24/05/2010-- Pedra – 5 – 200,00

Quero Filtra dessa maneira em jtex eu digito a data 24/05/2010 ai cliko em uma jbut ai a tabela fica assim

Cod – E/S – Data-- Produto – QUAnt – Valor
15 – E – 24/05/2010–AReia – 5 – 200,00
15 – S – 24/05/2010–AReia – -1 – 200,00
16 – E — 24/05/2010-- Pedra – 5 – 200,00

ai em um jcombo com duas oções E(entrada) ou S(saida) ai eu escolho no caso E

Ficando assim
Cod – E/S – Data-- Produto – QUAnt – Valor
15 – E – 24/05/2010–AReia – 5 – 200,00
16 – E — 24/05/2010-- Pedra – 5 – 200,00

e por ultimo escolho o produto digitando em uma jtexl ex AReia
Cod – E/S – Data-- Produto – QUAnt – Valor
15 – E – 24/05/2010–AReia – 5 – 200,00

issu sem salvarrr eh soh para pesquisa mesmo. os dados dessa iniciais dessa jtable sera retirados de um BD,

Obrigadoo

Veja a classe de auto-filtro, no link da minha assinatura.

Eai brother nao conseguirr compreender muitoo bemm a dica que vc me deuu baixei os arquivosss e tudoo olheii massssss…

Pelo que eu vii vc naum eh a favor do defaulttablemodel e eh justamente o que estou usando pq por enquanto soh sei mexer com default

Se puder me ajuda dentro do que esttou pesquisandoo eu agradeçoo…

valeww

  1. O auto-filtro funciona com o DefaultTableModel;
  2. Para usa-lo, basta incluí-lo como modelo da sua tabela:
suaTable.setModel(new TableFilter(seuModel));
  1. Ele faz exatamente o que você pediu, automaticamente. E melhor, segue o layout do excel, que quase todo usuário mais esperto está acostumado.
    Não tem como dar uma dica mais específica, nem mais fácil de implementar, do que essa.

Agora, você deveria parar de perder tempo com o Default e aprender a usar corretamente o JTable. Muita coisa que você está tendo dificuldade vai ficar extremamente simples de se fazer. Não continue sofrendo, largue mão desse Default.

Se precisar de ajuda para criar seu próprio TableModel, posta por aqui que ajudamos. Só não use o fato de não saber como desculpa esfarrapada. Afinal, você nem sempre soube mexer com o Default também.

beleza cara!! vou pesquisar ai como fazeer eu tablemodel e qualquer duvida conto com vc!! e com o pessoal do forumm… vou fazer pesquisaa logo mais posto akii

e é pura verdade antes eu nem sabia mexer com default e aprendiii e pensando mais um pouco em alguns meses atras nem sabia um linha de javaa…

obrigado!!!

jaja agente se fala…

Estou criando no NetBeans, peguei uma inserir o jtable no meu formularioo e tal ja mudei os nomes das colunas: Data, Cod, Produto, Quant, Valor.
Agora o que estou precisando eh setar nessa colunas os valores que eu vou digitar nos Jtextfield 21/08/2010, 1.2, Pedra, Quant, Valor

No default eu iria configurar os esqueminhaa assimm

[code]DefaultTableModel ttitulo = new DefaultTableModel(null,new String []{“Data”,“Cod”,“Produto”, “Quant”, “Valor”});
List titulo;
ListSelectionModel lsmtitulo;

//eai lista assim

while (ttituloB.getRowCount()>0){
ttituloB.removeRow(0);
}
if (titulo.size()== 0){

        JOptionPane.showMessageDialog(null,"Lista Vazia!");
    }else{
       String[] linha = new String[]{null,null,null,null};
        for (int i = 0; i <titulo.size(); i++){
            ttitulo.addRow(linha);
            ttitulo.setValueAt(titulo.get(i).getData(), i, 0);
            ttitulo.setValueAt(titulo.get(i).getCod(), i, 1);
            ttitulo.setValueAt(titulo.get(i).getProduto(), i, 2);
            ttitulo.setValueAt(titulo.get(i).getProduto(), i, 3);
            ttitulo.setValueAt(titulo.get(i).getValor(), i, 4);
       }
    }[/code]

Como eu façoo agora ta ja fiz isso aki

[code] Date hoje = new Date();
SimpleDateFormat dataformatada = new SimpleDateFormat(“dd/MM/yyyy”);
String data = dataformatada.format(hoje);

    Campostitulos c01 = new Campostitulos();
    c01.setData(data);
    c01.setCod(jTCod.getText());
    c01.setProduto(jTProduto.getText());
    c01.setQuant(jTQuant.getText());
    c01.setValor(jTValor.getText());[/code]

Naum sei como vou jogar dentro da tabela

Pare de perder tempo e aprenda a fazer seu próprio TableModel.

entaumm vc esta falando que eu devo fazer assim neh
http://www.guj.com.br/article.show.logic?id=140

Nao da na mesmaa se eu criar pelo netbeans e implementar

Tô falando que você deve fazer assim:
http://www.guj.com.br/posts/list/132698.java#714736
http://www.guj.com.br/posts/list/149034.java#808003

O NetBeans não força você a usar o TableModel dele, basta você, em vez de usar a opção “Personalizador de Modelo de Tabela” (argh - ugh - argh - vômito - diarréia - etc) usar a opção “Valor do componente existente” ou “Código Personalizado”.

Acho que você seja esperto suficiente para preencher uma das opções e procurar, na documentação, como é que você tem de fazer.


Estive olhando o seu auto Filtroo que esta na sua assinaturaa… fui seguinto o cod e tudo eh feito no braço nehh. naum consegui encaixa meu codigo tanto que esta tudo pronto soh naum conseguir fazer filtro . No seu Auto Filtro naum tem nenhuma class que eh excutavel nehh… Soh pra complicar mais aindaaa
Esse codigo akii naum funcionouu

[code]suaTable.setModel(new TableFilter(seuModel));
// mo caso ficaria assim
jTabela2.setModel(new TableFilter(ttitulo));

[/code]
Porem o TableFilter naum eh reconhecido
porque vc vez ele… pensei que ja era ta propria Jtable

entaum preciso colocar a sua class Tablefilter no meu projeto correto.
e todos os import que esta pedindo nela tbm?

[code]public class vender extends javax.swing.JFrame {

DefaultTableModel ttitulo = new DefaultTableModel(null,new String []{“Cod”,“Produto”, “Valor”});
List titulo;
ListSelectionModel lsmtitulo;

DefaultTableModel ttitulob = new DefaultTableModel(null,new String []{“Data”,“Cod”,“Produto”,“Quant”,“Valor”});
List titulob;
ListSelectionModel lsmtitulob;

public vender() {
    initComponents();

jTabela2.setModel( (TableModel) new TableFilter(ttitulo));

}[/code]

Eu peguei todas as class do seu auto filtro e coloquei no meu projeto"

a unica que esta dando erro
eh essa linha
element.listener.elementSelected(new HeaderPopupEvent( <ERRo Cannot find Symbol

na class

public class HeaderPopup extends JPopupMenu

[code] public void mouseMoved(MouseEvent e)
{
if (e.getSource() == list)
{
updateListBoxSelectionForEvent(e);
}
}
});
list.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
Element element = (Element) list.getSelectedValue();
if (element == null)
return;

                element.listener.elementSelected(new HeaderPopupEvent(
                        element.getObject(), modelndex));

                setVisible(false);
            }
        });
        list.setCellRenderer(new DefaultListCellRenderer()
        {
            private final Component SEPARATOR = new SeparatorComponent();

            @Override
            public Component getListCellRendererComponent( JList list,
              Object value, int index, boolean isSelected, boolean cellHasFocus)
            {
              if ( value == null )
              {
                return SEPARATOR;
              }
              return super.getListCellRendererComponent( list, value, index,
                isSelected, cellHasFocus );
            }
        });
    }

    return list;
}

[/code]

esquecii
a saida!!
esta dando esse erro

run:
Exception in thread “AWT-EventQueue-0” java.lang.UnsupportedOperationException: Not yet implemented
at Filtro.TableFilter.(TableFilter.java:47)
at Formularios.vender.(vender.java:54)
at Formularios.vender$8.run(vender.java:440)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

Obrigado pela Ajuda !!!

Consegui Fazer o filtro não da maneira que eu estava pensandoo, porem vai funcionarr igualzinho.
Queria fazer o filtro na table, mas achei a solução fazendo o filtro no Mysql e soh Imprimindo na tabela :lol:

http://www.hospedia.com.br/artigos/10/mysql/2/mysql_basico_-o_comando_select-_realizando_consultas.html

Class Dao

[code]
public List getFiltro(Campostitulos Cod) throws SQLException {
//pesquisa
String sql = (“Select * from saida where Produto = ? and Cliente = ?”);

    PreparedStatement stmt = (PreparedStatement) this.conexao.prepareStatement(sql);
    stmt.setString(1, Cod.getProduto()); 
    stmt.setString(2, Cod.getCliente());

    ResultSet rs = stmt.executeQuery();

    List<Campostitulos> minhaLista = new ArrayList<Campostitulos>();
    while (rs.next()) {
        Campostitulos t1 = new Campostitulos();
        t1.setCod(rs.getString("Cod"));
        t1.setData(rs.getString("Data"));
        t1.setProduto(rs.getString("Produto"));
        t1.setQuant(rs.getString("Quant"));
        t1.setValor(rs.getString("Valor"));
       // t1.setQuant(rs.getString("Quant"));
        minhaLista.add(t1);
    }[/code]

Class Vender

[code] public void teste() throws SQLException{

  Campostitulos t1 = new Campostitulos();

   List<Campostitulos> minhaLista = new ArrayList();
    t1.setProduto(jTpagamento.getText());//Aki primeiro parametro
    String Cliente = String.valueOf(jCCliente.getSelectedItem());
     t1.setCliente(Cliente);// Aki Segundo parametro
      minhaLista.add(t1);
      Daoo dao = new Daoo();
     titulob = dao.getFiltro(t1); // Passa os dados capturados para model 

mostraPesquisa2(titulob);// envia para mostrar pesquisa

}

private void mostraPesquisa2(List<Campostitulos> titulob) {
   while (ttitulob.getRowCount()>0){
    ttitulob.removeRow(0);                                     // Mostra a pesquisa
}
    if (titulob.size()== 0){
        JOptionPane.showMessageDialog(null,"Nenhum contato cadastrado");
    }else{
       String[] linha = new String[]{null,null,null,};
        for (int i = 0; i <titulob.size(); i++){
            ttitulob.addRow(linha);
            ttitulob.setValueAt(titulob.get(i).getData(), i, 0);
            ttitulob.setValueAt(titulob.get(i).getCod(), i, 1);
            ttitulob.setValueAt(titulob.get(i).getProduto(), i, 2);
            ttitulob.setValueAt(titulob.get(i).getQuant(), i, 3);
            ttitulob.setValueAt(titulob.get(i).getValor(), i, 4);

        }
    }
}[/code]

Fui…

Foi mal, estou as voltas com um projeto aqui, mal tive tempo de responder.

Mas com certeza vc cometeu algum erro na cópia das classes.

Vini
Colquei tudo no mesmo Pacote e arrumei os import
iii SOh copiei e coleiii … ate destaqueiii aii a linha que esta dandoo erro…