Como saber se Linha da Jtable esta vazia?

6 respostas
brunohenrique

e ai Galera?! :smiley:

preciso descobrir se uma determinha linha da tabela esta vázia pois só permitirei adição de linha se a atual estiver preenchida, escrevi o seguinte código:

public void addLinhaTabela(){
        int i = 0;
        int a = 0;
        int b = JTbl.getSelectedRow();
        
        for(i=0;i<=3;i++){
            if(jTbl.getValueAt(b,i).toString().equals("")){
                a = 1;
            }
        }
        if (a == 0){
            DefaultTableModel tbl = (DefaultTableModel)jTblCampos.getModel();
            tbl.addRow( new String [] {""});            
        }else {
            return;
        }
        
    }

mas nos testes diz que o objeto esta nulo.

alguém teria uma dica ou até mesmo um jeito melhor solucionar isto.
valeu galera!

6 Respostas

diego2005

Acho que você teria que fazer assim:

public void addLinhaTabela(){
    int i = 0;
    int b = JTbl.getSelectedRow();
    boolean vazia = false;
         
    for(i=0;i<=3;i++) {
        if(jTbl.getValueAt(b,i).toString().equals("")) {
            vazia = true;
            break;
        }
    }

    if(!vazia) {
        // adiciona linha
    }
}

T+

brunohenrique

Diego vlw kra, so que fiz do jeito que vc me disse mas continua dando o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

:wink:

D
JTable table =new JTable();

      int sel = table.getSelectedRow();
      boolean vazia = true;

      for( int i =0; i< table.getColumnCount(); i++){

         Object obj = table.getValueAt( sel, i ); 

         if(  obj != null && obj.toString().trim().length() > 0){
            vazia = false;
            break;
         }

      }

      if( vazia ){
         System.out.println(  "LINHA VAZIA"  );
      } else{
         System.out.println(  "LINHA NÃO VAZIA"  );
      }

blza…

diego2005

Troque essa linha:

for(i=0;i<=3;i++) {

por essa:

for(i=0;i < getRowCount(); i++) {

T+

Marky.Vasconcelos

Cara esqueçe DefaultTableModel e crie uma classe como model que extenda AbstractTableModel
se você procurar na comunidade você acha sobre isso

e lá na classe model crie um metodo que ve se existe a linha na onde você guarda os dados

brunohenrique

e que vantagem a maria leva mudando a classe DefaultModel para AbstractModel

Criado 27 de julho de 2007
Ultima resposta 27 de jul. de 2007
Respostas 6
Participantes 4