Celula da JTable

10 respostas
Bravox

Fala galera !!

Estou precisando que as celulas de uma tabela não fique editavel e não estou conseguindo achar nenhum metódo que faça isso !! alguém ai pode me dizer se existe alguma forma de fazer isso ??

bravox !!

10 Respostas

Proteu_Alcebidiano

sobrepoe o setEditable para retornar apenas false. Que eu lembre, a grosso modo, fica assim:

JTable table = new JTable() {
   public boolean setEditable(boolean value) {
      return false;
   }
};

T+

Guerr

Uma outra forma (mais trabalhosa) é criar um CellEditor e retornar um label com a informação.

Bravox

valeu !! vou tentar aqui !!

bravox

ViniGodoy

O isCell Editablenão é no JTable e sim no TableModel.

Se você estiver usando o DefaultTableModel o código fica assim:

DefaultTableModel model = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int col) { return false; } };

Eu normalmente implemento o meu próprio TableModel. Evita dores de cabeça, além de muitas vezes deixar o código até mais simples!!!

Proteu_Alcebidiano

Valeu pela correção :wink:

Faz alguns anos que não mexo com swing pra valer, desconhecia uma solução envolvendo annotations :wink:

T+

ViniGodoy

Essa solução não envolve anotations.

A tag @Override não é necessária nas versões anteriores do Java. Ela só serve para dizer para o compilador que esse método sobrescreve um método da classe superior.

Ele sabendo disso, pode dar erro se eventualmente você esquecer de digitar uma letra ou se você mudar o nome do método da superclasse. :wink:

Proteu_Alcebidiano

ViniGodoy:
Essa solução não envolve anotations.

A tag @Override não é necessária nas versões anteriores do Java. Ela só serve para dizer para o compilador que esse método sobrescreve um método da classe superior.

Ele sabendo disso, pode dar erro se eventualmente você esquecer de digitar uma letra ou se você mudar o nome do método da superclasse. ;)

legal :wink:

V

To começando agora, não sei se resolve:

No Netbeans, eu seleciono o componente JTable do formulário, vou até a propriedade “Mode” e seleciono um a um os campos que quero manter editável (versão 6).

sudeval

se eu quiser dizer se ela é editavel ou não em tempo de execução ? :frowning:
casos como se su for inserir X , o campo não pode ser editival, mais se eu vinher a inserir y,z pode ser editavel !

na verdade, eu preciso dizer se ele vai ser editavel ou não no momento em que estou colocando o valor no model da tabela, alguem sabe?

sudeval

codigo | nome | quantidada | colunaMaldita

eu quero que ao inserir valores nessa tabela, em determinado momento dizer que colunaMaldita não pode ser alterada.

codigo | nome | quantidada | colunaMaldita 0001 | tesee1 | 5 | X 0002 | teste2 | 10 | 0003 | teste3 | 3 | X ( e não mais vai poder ser alterada )

esse colunaMaldita o usuário pode marcar ou desmarcar com o clique do mouse, mais em determinado momento, eu quero dizer que determinada linha, não vai poder ser editavel, ou seja nao vao poder marcar ou desmarcar a colunaMaldita!

Criado 13 de dezembro de 2006
Ultima resposta 8 de fev. de 2007
Respostas 10
Participantes 6