Ajudem a acabar com o DefaultTableModel! [RESOLVIDO]

3 respostas
fejohann

Ola pessoal, minha terceira tentativa de obter auxilio com relação a abstracttablemodel…

bem, preciso colocar um checkbox em uma tabela… consegui fazê-lo aparecer…

mas ao clicar ele não muda…

o que falta?

...
    public class ModeloTable extends AbstractTableModel {
    private List<Agenda_de_Manutencao_de_Veiculo> agenda;

    public ModeloTable() {
        agenda = new ArrayList();
        }

    public ModeloTable(List<Agenda_de_Manutencao_de_Veiculo> lista) {  
          this(); 
          agenda.addAll(lista);  
       }  
    
    public int getRowCount(){
        return agenda.size();
    }
    
    public int getColumnCount(){
        return 5;
    }
    
    public String getColumnName(int colunas){
        switch (colunas) {
        case 0 : return "Veiculo";
        case 1: return "Status";
        case 2: return "Prioridade";
        case 3: return "Data";
        case 4: return "Seleciona";
        default: return "";
        }
    }
    
    public Class<?> getColumnClass(int coluna) {
        if(coluna== 4){
            return Boolean.class;
        }
        else
            return String.class;
    } 

    public Object getValueAt(int linhas, int colunas){
        Agenda_de_Manutencao_de_Veiculo age  = agenda.get(linhas);
        switch (colunas){
        case 0: return age.getVeiculo().getVei_nome().toString(); 
        case 1: return age.getStatus().getSta_nome().toString();
        case 2: return age.getPrioridade().getPri_nome().toString();
        case 3: return age.getAge_man_vei_dia().toString();
        case 4: return age.getAge_man_vei_seleciona();
        default: return "";
        }
    }
    
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return true;
    }

    public Agenda_de_Manutencao_de_Veiculo get(int linhas){
        return agenda.get(linhas);
    }
    
    public void setValueAt(Boolean value, int linha, int col) {
        Agenda_de_Manutencao_de_Veiculo age  = agenda.get(linha);
        age.setAge_man_vei_seleciona(value);
        
        fireTableCellUpdated(linha, col);
    }
}

e nessa parte eu alimento a jtable

...
        List<Agenda_de_Manutencao_de_Veiculo> lista = new ArrayList<Agenda_de_Manutencao_de_Veiculo>();
        Agenda_de_Manutencao_de_VeiculoDAO dao = new Agenda_de_Manutencao_de_VeiculoDAO();

        for (Agenda_de_Manutencao_de_Veiculo agenda : dao.listar()) {
            lista.add(agenda);
        }
        jTable1.setModel(new ModeloTable(lista));
...

3 Respostas

fejohann

Pessoal, desculpem a insistência, mas preciso de ajuda mesmo…

sobre meu código, alguém pode me dizer sobre o evento que captura que a tabela foi modificada, e chama o setValueAt???

PLEASEE

fejohann

Ninguem???

fejohann

Para quem estiver tendo problemas parecidos, tente acrescentar:

jTable1.setModel(new ModeloTable(lista));
        jTable1.getColumnModel().getColumn(4).setCellEditor(new DefaultCellEditor(new JCheckBox()));  // onde 4 é a coluna que sera checkbox
Criado 24 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 3
Participantes 1