Como impedir que o usuário modifique os valores de “uma” determinada coluna do JTable?
Impedir edição de células - JTable
7 Respostas
procure sobrepor o método isCelleditable(int row, int column) da sua tablemodel…
dá uma pesquisada nisso que tenho certeza que resolve teu problema…
flws
se voce tiver uma classe como model sobre-escreva o metodo isCellEditable(int row,int col). algo assim
public boolean isCellEditable(int row, int col){
if(col == 2)return false;//Isso se for sua terceira coluna
return true;
}
DefaultTableModel dtm = new DefaultTableModel()
{
public boolean isCellEditable(int row, int column)
{
return false;
}
};
JTable.setModel(dtm);
Fazendo isso você impossibilita a edição das células e consegue selecionar as rows.
Por favor, não ressucite um tópico de 3 anos só pra dar a solução com o DefaultTableModel.
Essa nunca é a solução correta e estamos lutando arduamente a anos para não usarem isso.
Oi Luquinhas,
coloco este codigo em algum evento da jTable ou no metodo construtor do form?
DefaultTableModel dtm = new DefaultTableModel()
{
public boolean isCellEditable(int row, int column)
{
return false;
}
};
JTable.setModel(dtm);
Erivando
É na criação do model.
Mas volto a repetir o que falei ano passado sobre DefaultTableModel.
Vlw Marky, entendi agora, eu fiz no meu tablemodel personalizado e deu certo!
Classe MyTableModel
public class MyTableModel extends DefaultTableModel {
...
// Outros códigos importantes aqui!
...
/*
* Trava a edicao das celulas da jTable
*/
@Override
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
}
Espero que ajude também a outras pessoas com a mesma dúvida
Erivando Ramos