Problemas com observer

0 respostas
R

Eu criei uma classe AbstractTableModel e depois instanciei a classe, peguei a instancia e adicionei o jTable… ATé nesse ponto tudo ok, o problema é que eu add um oberver nesta classe que criei e não está atualizando o jTable automaticamente, vaja o código abaixo:

public class ProspectsTableModel extends AbstractTableModel implements Observer {

    private String[] colunas = {"Criação","Status","Tipo de Pessoa","Nome/Fantasia","Cidade","Tel. 1","Tel. 2","Opções"};
    private List<Prospect> prospectsList;
   
  

    public ProspectsTableModel() {
        ControleProspectsSQLLite.getInstance().addObserver(this); //aqui eu adiciono o observer... a classe ControleProspectsSQLLite() extende um Observable
        prospectsList = ControleProspectsSQLLite.getInstance().listar();
    }


    public String[] getColunas(){
        return colunas;
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        return colunas[columnIndex].getClass();
    }

    
    @Override
    public String getColumnName(int column) {
        return colunas[column];
    }



    public int getRowCount() {
        return prospectsList.size();
    }

    public int getColumnCount() {
       return colunas.length;
    }

    public Prospect getRowValue(int rowIndex){
        return prospectsList.get(rowIndex);
    }
    

    public Object getValueAt(int rowIndex, int columnIndex) {
        
         Prospect prospects = prospectsList.get(rowIndex);
         Object ret = null;
         Date data = null;
         SimpleDateFormat dtf = new SimpleDateFormat("dd/MM/yyyy");
       
        switch(columnIndex){
            case 0://Criação
                    data = new Date(Long.parseLong(prospects.getTimesSamp())*1000);
                    ret = dtf.format(data);
                    break;
            case 1://Status
                    ret = prospects.getStatus();
                    break;
            case 2://Tipo de Pessoa
                   if (prospects.getTipoPessoa().equalsIgnoreCase("pessoa_fisica")){
                          ret = "Pessoa Física";
                   }else{
                        ret = "Pessoa Jurídica";
                   }
                 
                    break;
            case 3: //Nome/Fantasia

                    if (prospects.getTipoPessoa().equalsIgnoreCase("pessoa_fisica")){
                        ret = prospects.getNome();
                    }else{
                        ret = prospects.getNomeFantasia();
                    }
                    break;
            case 4: //Cidade
                    ret = prospects.getCidade();
                    break;
            case 5://Tel. 1
                    ret = prospects.getRef().get(0).getTelefone().getNumero();
                    break;
            case 6: //Tel. 2
                    ret = prospects.getRef().get(1).getTelefone().getNumero();
                    break;
            case 7://opções
                    ret = "+ Opções";
                    break;

        }
        return ret;

    }

    public void update(Observable o, Object arg) {
         prospectsList = ControleProspectsSQLLite.getInstance().listar();
         fireTableStructureChanged();
    }

Analizando o código não teria que atualizar o jTable automaticamente?

Criado 24 de março de 2011
Respostas 0
Participantes 1