[RESOLVIDO]Percorrer um JTable e remover registros selecionados(AJUDA)

Ola Pessoal,
estou meio travado com o JTable aqui…dei uma olhada na API …só que nao consegui muita coisa nao.
Estou tentando fazer o seguinte:
–>Antes de carregar os registros, Eu preciso Verificar uma coluna do banco de dados, e trazer somente os registros que tiver essa coluna em branco.
–>quando clicar em um JButton, ele deve percorrer todas as linhas do Table e verificar quais linhas estao selecionadas(bollean:true)
–>pegar linhas selecionadas e remover do table e gravar um OK em uma coluna do bd.
(Uso o netbeans 6.5)
Criei meu JTable…ai na hr de criar as colunas…algumas sao object…e uma boolean, que é aquela “caixinha” de selecao…essa que eu preciso verificar se esta selecionada…
como posso fazer essa verificação?
se alguem puder dar uma força…ou tiver algum material sobre JTable, fico grato.
[ ]'ss

Essa parte não entendi.

Para pegar as linhas selecionadas tu usa o método "tuaTabela.getSelectedRows()".

Para pegar o valor de uma coluna tu usa "tuaTabela.getModel().getValueAt(indiceLinha, indiceColuna)"

Para remover as linhas selecionadas, na verdade, eu só setaria um novo DefaultTableModel com o teu model restaurado na JTable. Para saber como, tu podes implementar o DefaultTableModel da uma pesquisada no google.

é que isso dai seria uma tela de “baixar contas a pagar”, ai o que ja estivesse “pago” nao poderia vir na tabela…
Eu ja havia tentado com esse getSelectedRows() …é que eu tenho uma coluna com aquela “caixinha” boolean sabe(um checkbox)…que dai seleciono qtas eu quiser…

acho que seria com getModel().getValueAt(indiceLinha, indiceColuna) entao…
ai eu faria um for pra percorrer toda a tabela entao e pegar as colunas que estivessem true né?
dai os que fossem verdadeiros mandava um removerow…
seria isso?
obg

Isso mesmo. A lógica tu monta agora, os métodos são estes.

Eu não cheguei a trabalhar com jtable com outro components dentro das celulas. Mas dai é só dar uma pesquisada na net que certamente alguém já fez isso. Ainda mais com essas checks…

Uma dica, eu quando trabalho com JTable e extendo DefaultTableModel pra indexar os objetos que as linhas contém. Acho que fica mais fácil depois pra mexer no model da aplicação.

donatoinfo , a não ser que voce queira fazer de outra forma, mas porque deletar só da JTable?

Faz um script para pegar só os que ainda estão em aberto. Aqueles que voce quitar (marcar o checkbox e clicar no button “Quitar”) é só inserir um (método) consultaCliente() no final do seu (método) quitar() que ele vai atualizar a sua jtable.

Digo isso porque dessa forma que voce quer fazer, pode dar uma “ilusão” do pagamento desses contas a pagar.

Ah sim!
beleza…na hora que chegar em casa vou fazer alguns testes ai posto ai…
Brigadao por enquanto

Voce pode fazer assim tb:

[code] while (conexao.resultset.next()){
valorRecebe=String.valueOf(conexao.resultset.String(“ValorDoBD”));
if(valorRecebe.length() < 1)//dependendo do formato de dados pode-se utilizar a comparacao com NULL,ou EQUALS.
{

          modelo.addRow(new Object[]{ conexao.resultset.getString("CAMPOS)});

       }[/code]

BrunoKoehler , é isso msmo que eu quero…pegar só os que estao ainda em aberto, e depois na hr que clicar em quitar ele tirar ele da table…o problema é que nao estou conseguindo pegar somente os selecionados…a tabela seria = essa por ex: (Ai nesse caso remover somente o “Alison e Sharon” q estao marcados)

tentei apenas mostrar no konsole de saida… assim:

[code] ArrayList ContaPagar = new ArrayList();

     for (int i = 0; i < baixarCP.getRowCount(); i++) {
         if (((Boolean)baixarCP.getValueAt(i, 5)).booleanValue()?true:false){

         ContaPagar.add((String)baixarCP.getValueAt(i, 0).toString());
         System.out.println(ContaPagar.size());

         }
     }[/code]

mas nao vai…da um Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

Alguem tem ideia do que pode ser?

Veja se assim resolve

 ArrayList<String> ContaPagar = new ArrayList<String>();
        
         for (int i = 0; i < baixarCP.getRowCount(); i++) {
             if ((Boolean)baixarCP.getValueAt(i, 4))){

             ContaPagar.add((String)baixarCP.getValueAt(i, 0).toString());
             System.out.println(ContaPagar.size());

             }
         }

A coluna que voce tava pegando era a 5, o correto nao seria a 4?

Att…

Rapaiz…dando o msmo erro ainda…a minha coluna é a 5 msmo.
ja tentei de outras formas e nada tb…o unico jeito que deu certo foi pegar a linha selecionada…
Alguem ja fez algo desse tipo…usando um checkbox no jtable?
obrigado

Consegui Resolver o problema la com uma simples solucao…quem estiver com esse problema tb:
criei uma variavel do tipo boolean inicializando ela como false(ou seja, o checkBox nao esta selecionado)…ai criei um laço para percorrer o table…
e com o getValueAt peguei o valor da coluna…convertento para string(false or true)
variavel = new Boolean(table.getValueAt(i, 5).toString());
ai se variavel == true removi do meu table com removerow…
Obrigado ai…

Só uma dica referente a remoção de linhas em JTable:

Inicie a remoção do maior index para o menor, pois a cada linha removida, a tabela reduz uma posição em cada linha posterior. Caso inicie a remoção do menor para o maior, poderá ocorrer a remoção de linhas indevidas.

Agora uma observação:

A primeira linha possui index ZERO (0), e não UM (1), assim como colunas e quase tudo em Java.

É isso ai Eder, me esqueci de mencionar esse detalhe…isso pode ser tratado no for.