Erro no cast do table.getModel()

2 respostas
D

Ola amigos, estou tendo um problema com JTable. Quando faco o cast no table.getModel() da um erro que eu nao entendo a razao.
O erro eh este :

Exception in thread “main” java.lang.ClassCastException: javax.swing.JTable$1 cannot be cast to javax.swing.table.DefaultTableModel
at string.ExecutaFrame1.main(ExecutaFrame1.java:33)
Java Result: 1

o codigo eh esse :

import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class ExecutaFrame1 {
    

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        String[] colunas = {"Nome","Idade","Sexo"}; 
        String[][] dados = { 
                            {"Rodrigo","28","Masculino"},  
                            {"Maria","30","Feminino"} 
                            }; 
               
        JTable table = new JTable(dados,colunas);
        
        DefaultTableModel dtm = (DefaultTableModel) table.getModel();
        
        String[] linha = {"Roberto","34","Masculino"};
        dtm.addRow(linha);
        
        JScrollPane scroll = new JScrollPane(table);
       
        frame frame = new frame();
        frame.add(scroll);

        frame.showIt("PRODUTO : BIFOCAL ",10,10,500,200);

         }
        
     }

Por que ta dando essa exception ?

2 Respostas

V

Rá! O modelo padrão do JTable, quando você inicializa dessa forma, não é o DefaultTableModel. Pegadinha do Malandro.

De qualquer forma, você nem sequer deveria estar usando o DefaultTableModel. No link ao lado do texto em vermelho na minha assinatura tem um tutorial bem completo sobre como usar JTable de verdade.

D

Valeu !

Criado 21 de janeiro de 2013
Ultima resposta 22 de jan. de 2013
Respostas 2
Participantes 2