Como faço para bloquear a edição das células (todas) em um jTable? Parece simples, usa setEnable (false); mas daí não consigo ponterar o registro (selecionar a linha), não existe setEditable() para tabelas.
scrollTableGaragem = new JScrollPane();
tableGaragem = new JTable();
tableGaragem.setModel(new DefaultTableModel(
new Object [][] { },
new String [] {"Placa", "Hora", "Data", "Veículo", "Funcionário"})
);
tableGaragem.getTableHeader().setReorderingAllowed(false);
scrollTableGaragem.setLocation(2,15);
A delaração da table e da scrollTable estão no início da classe, o scrollTable é add em um painel mas a diante.
Tudo funciona perfeitamente.
Abaixo consta um exemplo de como sobrescrever a classe DefaultTableModel.
Você define a edição ou não das células de uma coluna através da variável boolean[] canEdit.
:shock: :shock: :shock:
O seu código está um pouco complicado para entender, teria como você me explicar o que faz cada parte e me mostrar como ficaria na minha atual tabela?
Cada valor da variável canEdit representa uma coluna. Se informar true, todas células da coluna permitem serem editadas; se false, não.
E
Eder_Peixoto
Por padrão, a classe DefaultTableModel define que as células de cada coluna são editáveis. Se você quiser que alguma coluna NÃO seja editada, é necessário sobrescrever algumas coisas dentro dela. No nosso caso, é necessário editar a variável canEdit e o método isCellEditable.
Espero ter ajudado.
G
gqferreira
:shock: :shock: :shock:
Até que não deu erro de compilação mas a tabela desapareceu!
E
Eder_Peixoto
Haaa… Errei na quantidade dos false na variável canEdit Coloquei 4, mas são 5.
Cara, a tabela continua desaparecendo. Desculpa a minha ignorância, é que sou leigo em jTable e estou apanhnado com elas!
:thumbup: :thumbup: :thumbup:
G
gqferreira
Eder Peixoto:
Haaa… Errei na quantidade dos false na variável
Só muda o canEdit.
O que vc quer dizer com isto?
E
Eder_Peixoto
Como tua tabela possui 5 colunas, então é necessário informar que todas NÃO serão editáveis. Para fazer isso, você informa na variável canEdit um array de tamanho 5, sendo todos parâmetros false.
O problema é que eu tinha te informado que canEdit recebia 4 elementos false.
Por acaso está disparando alguma Exception? Se NÃO, coloque o método setmodel dentro de um bloco try/catch, e utilize o método printStackTrace para verificar o que está ocorrendo.
Se continuar o problema, poste-o aí.
G
gqferreira
O pior é que não dispara exception nenhuma…
:?: :?: :?: :?: :?:
E
Eder_Peixoto
Não testei, mas o problema pode ser aqui:
new Object [][] { }
Tente colocá-lo como null, para ver se o problema persiste.
Que nada, o fórum é pra isso.
E o bom é que também estou agora quebrando a cabeça pra fazer com que o meu JTable inicie com a largura de uma determinada coluna, com o tamanho que eu quiser (por exemplo: coluna 0 (zero), deve iniciar com tamanho 40).