dê uma olhada neste topico
talvez possa ajusdar
substitua a colunapela linha
http://www.guj.com.br/posts/list/42875.java#227192
osmio blz
[code]SuaTabela.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null}
},
new String [] {
“ExCódigo”, “ExNome”, “ExCPF”
}
) {
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.String.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, false, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});[/code]
[code]boolean[] canEdit = new boolean [] {
false, false, false
};[/code]
nessa linha de código vc define true pra editavel e false pra não editavel
esse código vc coloca apos ter criado o seu objeto JTable, c vc estiver usando a IDE NetBeans , da uma procurada aew em cima da sua classe pq esse código ja vai estar gerado automaticamente , aew é só vc abrir essa classe em um editor de texto , o bloco de notas que seje , e altera de true pra false… qualquer duvida me de um toque aqui blz
Tem um jeito bem fácil que é você sobrescrever o método isCellEditable da classe DefaultTableModel assim:
DefaultTableModel tb = new DefaultTableModel(null, new String [] {“col 1”, “col 2”, “col …”})
{
@Override
public boolean isCellEditable(int row, int col)
{
return false;
}
};
Dessa forma todas as colunas não são editáveis mas, é so colocar no método condições caso tenha colunas que precisem ser editadas.
DefaultTableModel tb = new DefaultTableModel(null, new String [] {"col 1", "col 2", "col ..."})
{
@Override
public boolean isCellEditable(int row, int col)
{
return false;
}
};
Estive procurando maneiras para desabilitar edição das minhas jTables, mas infelizmente nenhuma das soluções, nem mesmo as apresentadas aqui no GUJ serviram para a minha situação.
No entanto, dando uma fuçada nos métodos da jTable e nos eventos, experimentei criar um evendo MousePressed para a tabela, chamando os métodos editingCanceled() e editingStopped().
Bom, aqui deu certo, as células da jTable não entram mais em edição, apenas são selecionadas, agora se isso interfere no funcionamento de algum outro evento, eu não sei.
Segue o método:
private void suaJtableMousePressed(java.awt.event.MouseEvent evt) {
suaJtable.editingCanceled(null);
suaJtable.editingStopped(null); // talvez este não seja necessário
}
Bom dia!
Estou enfrentando o seguinte problema.
Preciso que um JTable possa ter suas linhas selecionadas, mas não possam ser editadas.
Procurei na API e não achei nenhum método setEditable().
O que preciso, é poder selecionar a linha, para poder recuperar o valor id da respectiva linha na tabela.
Portanto, o método setEnabled() não serve pra mim.
Desde já agradeço.