Não consigo buscar dado do AbstractTableModel.. pq?

2 respostas
fejohann

Ola, utilizei o abstractTableModel, criei um get para eu conseguir puxar um tupla completa, mas, não consigo utiliza-la no evento do botão...

a minha classe da abstract
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 void setValueAt(Object value, int linha, int col) {
        Agenda_de_Manutencao_de_Veiculo age  = agenda.get(linha);
        //case 4: 
         age.setAge_man_vei_seleciona((Boolean)value);
     }
    
    public Agenda_de_Manutencao_de_Veiculo get(int linha){
        return agenda.get(linha);
    }
}
e onde estou tentando chamar o get [code]

private void JB_modificar_actionPerformed(ActionEvent e) {
int i;
System.out.print(jTable1.getModel().getRowCount());
for(i =0;i if(ModeloTable.get(jTable1.getSelectedRow()).getAge_man_vei_seleciona()==true){ //nesta linha diz que não encontra o ModeloTable.get pois este não é static, mas se eu coloco-o como static da erro no return... o que fazer?

System.out.print(ModeloTable.get(jTable1.getSelectedRow()).getAge_man_vei_cod());

}
}
}

2 Respostas

Eric_Yuzo

Realmente não dá para acessar um método não estático diretamente pela classe, por isso é preciso usar o objeto TableModel que foi setado na JTable para recuperar a linha:

ModeloTable model = (ModeloTable) jTable1.getModel(); System.out.print(model.get(jTable1.getSelectedRow()).getAge_man_vei_cod());

d34d_d3v1l

eu geralmente crio um atributo na classe que usa o modelo, e geralmente ele é estático e publico [só pra nao perder tempo com get]…

então pra chamar eu faço:

ClasseFuncionarios.modelo.getFuncionario(0);

abrazz

Criado 28 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 2
Participantes 3