Dinamismo em JTable

1 resposta
M

Salve galera, meu problema é definir a condição (X da questao) para que eu possa tornar uma tabela dinâmica.

O Modelo da tabela é o seguinte:

public Vector addLinhas(){
       Vector linha = new Vector();
       Vector addlinha = new Vector();
           do{
              if(GravaDados()){//validação dos dados da tela
                   addlinha.addElement(prd);//nome do produto
                   addlinha.addElement(qtd);//quantidade --dada pelo valor inteiro correspondente de um JTextField
                   addlinha.addElement(s);//valor unitário do produto 
                   addlinha.addElement(t);//multiplicação de qtd e s (valor da compra)


                   linha.addElement(addlinha);

              }
           }while(//condição);//X DA QUESTAO
       return linha;
       
   }
    
    public Vector addColunas(){
        final Vector colunas = new Vector();
            colunas.addElement("Produto");
            colunas.addElement("Quantidade");
            colunas.addElement("Valor - R$");
            colunas.addElement("Total - R$");
            
            return colunas;
    }
    
    public DefaultTableModel setaModelo(){
        DefaultTableModel modelo = new DefaultTableModel(addLinhas(), addColunas());
        
        return modelo;        
    }
Eu passo o modelo através de um evento do btAdicionar:
private void btAdicionarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        
        try{
            if(ValidaDados()){
                if(GravaDados()){
                    
                    tblVendas.setModel(setaModelo());
                    cont = tblVendas.getModel().getRowCount();
                    tblVendas.getColumnModel().getColumn(1).setMinWidth(80);
                    tblVendas.getColumnModel().getColumn(1).setMaxWidth(80);
                    tblVendas.getColumnModel().getColumn(2).setMinWidth(80);
                    tblVendas.getColumnModel().getColumn(2).setMaxWidth(80);
                    tblVendas.getColumnModel().getColumn(3).setMinWidth(80);
                    tblVendas.getColumnModel().getColumn(3).setMaxWidth(80);
                    contador ++;
                    if(contador>0){
                        cbxCliente.setEnabled(false);
                        
                    }
                }  
            }
        }catch(Exception ex){
            JOptionPane.showMessageDialog(null, "Ocorreu uma falha durante a exibição dos dados.", "Atenção", JOptionPane.ERROR_MESSAGE);
        }    
        
    }

Não atentem ao fato de a estrutura do código ser um tanto quanto feia(sou iniciante ;])

Não consigo definir a condição do "do while" para que eu consiga rodar o programa sem problemas.. como posso fazê-la??

vlwz ae

1 Resposta

Ironlynx

Cara, a condição é o que vc quer!!!
E pq vc não estendeu o AbstractTableModel.Olhe um exemplo(tem o código anexo no final, vai lhe ajudar):

Criado 19 de abril de 2008
Ultima resposta 19 de abr. de 2008
Respostas 1
Participantes 2