Bloqueando valores de células em jTable

Gente estou precisando de um help…

Tenho um metodo aki que popula uma tabela…ta td funcionando direitinho…
O que preciso é apenas que as colunas(todas) da minha tabela não fossem possível do usuário editar…

Eu cheguei a ver uns métodos isCellEditable mas não consegui entender como se aplicaria no meu código…

//*************************** METODO POPULA TABELA *****************************
private void meter(JTable jt) {

  String colunas[] = {"DESCRIÇÃO","IDENT2","NR SÉRIE","IP","UCR","MIDIA"};
  ArrayList listMeter  = new ArrayList();

  //buttonGroup1.getSelection().getActionCommand();
  
  try {
     
     listMeter=(ArrayList)cd.getConexao(rf.Reader(), "'%" + jTextField1.getText() + "%'", buttonGroup1.getSelection().getActionCommand());

     String linhas [][] = new String[listMeter.size()][colunas.length];
     ArrayList listAux = new ArrayList();
     
     for(int i =0; i<listMeter.size();i++)   {
        listAux.add(new ArrayList());

        for(int j=0;j<((ArrayList)listMeter.get(i)).size();j++)   {
             String p = (String) ((ArrayList)listMeter.get(i)).get(j);
             ((ArrayList)listAux.get(i)).add(p);                 
        }
     }
                            
     for(int i=0;i<listAux.size();i++)  {
         
         for(int j=0;j<((ArrayList)listAux.get(i)).size();j++)  {                 
             linhas[i][j]=(String)((ArrayList)listAux.get(i)).get(j);
             //System.out.println((String)((ArrayList)listAux.get(i)).get(j));
         }              
     }
                       
    DefaultTableModel modelo = new DefaultTableModel(linhas, colunas);
    
    jTable1.setModel(modelo);
    jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    

    jButton1.setEnabled(false);
    jButton4.setEnabled(true);

    } catch (SQLException ex) {
        Logger.getLogger(Frame_Medidor.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(Frame_Medidor.class.getName()).log(Level.SEVERE, null, ex);
    }

}
//*************************** METODO POPULA TABELA *****************************

é um metodo simples que cria as colunas… vai no banco de dados e popula as células referente a cada coluna

como eu disse ta td ok… só preciso tornar este método com as células(todas) bloqueadas pra edição…

Valeu!

:slight_smile:

na hora de setar o nome das colunas vc poem o public boolean isCellEditable…ai jah era…se vc deixar false ele blokeia e true ele deixa editar…

table.setModel(new DefaultTableModel(new Object[][] {},
new String[] {“Coluna1”, “Coluna2”}){
public boolean isCellEditable(int row, int column){
return false;
}});

Seu código usa o DefaultTableModel, portanto, está completamente errado. Você não deve usar essa classe para fazer tabelas. No lugar, faça seu próprio tablemodel, como nesse exemplo:
http://www.guj.com.br/posts/list/132698.java#714736

pq eu nao devo usar essa classe pra fazer tabelas?

Bom, só tem os seguintes motivos para não usar:

  1. É mais difícil que escrever seu próprio TableModel;
  2. É mais lento (usa classes sincronizadas);
  3. Ocupa mais espaço em memória (duplica seus dados);
  4. Deixa o código mais confuso e difícil de manter;
  5. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.

Tem outro bom exemplo de como montar um TableModel aqui:
http://guj.com.br/posts/list/149034.java#808003