JTable

13 respostas
rafaelt

Alguém poderia me dizer como faço para colocar numa JTable que a linha e a coluna não seja editada??? no caso da coluna que não permita que o user mova ela do seu lugar.

13 Respostas

lina

Oi,
Bom…
existe a seguinte maneira, que não é aconselhavel, porem funciona…
ela só não é aconselhavel pois quando você quiser editar alguma coluna, não vai conseguir =)

Lá vai:

//
// cria a tabela.
//
tabela	=	new	JTable(new DefaultTableModel()
{
     public boolean isCellEditable(int row, int column)
     {
              return false;
     }			    		
});

Olha, uma dica… de uma olhada no Construtor do JTable, que tem varios métodos legais e dificeis e bem mais interessantes para serem usados!

Tchauzin!

paulorb.pacheco

Opa,
Respondendo a segunda pergunta…

nomeTabela.getTableHeader().setReorderingAllowed(false);

Hmmm… moça bonita e inteligente… interessante… :oops:

clodoaldoaleixo

paulorb.pacheco:
Opa,
Respondendo a segunda pergunta…

nomeTabela.getTableHeader().setReorderingAllowed(false);

Hmmm… moça bonita e inteligente… interessante… :oops:

E vc acredita que a foto é dela mesma…tb acredita em Papai Noel, duendes e gnomos? :lol:

paulorb.pacheco

:shock: hahaha … acredito em papai noel, me trouxe presentes essa semana… :lol:

é brincadeira… :stuck_out_tongue:

cado

clodoaldoaleixo:

Hmmm… moça bonita e inteligente… interessante… :oops:

E vc acredita que a foto é dela mesma…tb acredita em Papai Noel, duendes e gnomos? :lol:

Que preconceito ridiculo, só pq ela manja muito mais q muito “barbado” (se é q são adultos) aqui. Na empresa onde trabalho tinha duas mulheres (uma lindinha por sinal) que mandavam muito bem em java.

Mantu

Hmmm… JTable que é o assunto do tópico, nada? :?

rafaelt

Obrigado a todos pelas respostas, a dica do paulorb.pacheco funcionou, mas a da lina não, quando coloco o exemplo de código ele não me retorna nem colunas nem linhas, talvez não tenha explicado direito, está o seguinte o user pressiona o botão de abrir e adiciona arquivos na JTable, só que os dados adicionados podem ser alterados quando clicados encima deles eu naum quero isso, eu quero que os dados adicionados não possam ser editados nas linhas…

Alguém pode me ajudar…

Abraços!!!

Mantu

Estranho… O jeito como a lina colocou é o jeito mais comum de se evitar que todas células da tabela sejam editáveis…
Certifique-se de que no momento em que vc instancia sua tabela, vc está fazendo como a lina sugeriu. Aqui deveria funcionar, pois ali está sendo criado uma classe anônima que extende DefaultTableModel e sobrescreve o método isCellEditable, fazendo com que seja qual for row ou column, retorne-se false. DefaultTableModel é uma classe que implementa a interface TableModel. A classe JTable utiliza um objeto TableModel para, entre outras coisas, verificar se uma determinada célula é editável ou não. A classe JTable faz essa verificação “perguntando” ao seu TableModel, atrávez do método isCellEditable, se a célula na linha row e coluna column é ou não editável. Como a tabela foi criada com um TableModel que para essa “pergunta” sepre retorna false, nenhuma célula seria editável.
Por isso creio que não tenha utilizado a dica da lina corretamente.

Ironlynx

Pior que é.Ou é algum fã fazendo propaganda dela.Veja a página no fotolog.
Pessoal, segura a onda e sem sexismos sim!Piadinhas de casamento podem desde que não ofendam a moral da moça.E encorajamos a usar a PM para isso.
Lina, o pessoal aqui parece que fica alguns anos sem ver mulheres e acabam tendo problemas com isso.Encare na esportiva. :wink:

rafaelt,
já pensou na possibilidade de implementar um novo TableCellEditor mexendo no getTableCellEditorComponent?Cadê o brlima que é um Deus do Swing? :smiley:

rafaelt

Blz pessoal consegui fazer, obrigado Lina, Mantu a todos, estava fazendo errado mesmo, instanciei a JTable ao invés do modelo, ai estava dando errado.

Abraços,
Rafael

rafaelt

Pessoal aproveitar o tópico pois tenho outra dúvida sobre JTable, quero saber como faço pra remover todas as linhas de uma vez só através de um JButton…???

Obs.: O JButton eu já criei hehehe.

paulorb.pacheco

Se vc usou o “javax.swing.table.DefaultTableModel” como modelo…

javax.swing.table.DefaultTableModel modelo = (javax.swing.table.DefaultTableModel) tabela.getModel();
        for(int i = 0 ; i <  tabela.getRowCount(); i++){
            modelo.removeRow(i);
        }

Bom eu não sei se vc usou outro modelo pra JTable isso funciona ou não…

rafaelt

paulorb.pacheco:
Se vc usou o “javax.swing.table.DefaultTableModel” como modelo…

javax.swing.table.DefaultTableModel modelo = (javax.swing.table.DefaultTableModel) tabela.getModel();
        for(int i = 0 ; i <  tabela.getRowCount(); i++){
            modelo.removeRow(i);
        }

Bom eu não sei se vc usou outro modelo pra JTable isso funciona ou não…

Blz veio, já tinha conseguindo, mais foi algo parecido hehehe brigado pela resposta.
Abraços…
Rafael

Criado 28 de dezembro de 2006
Ultima resposta 5 de jan. de 2007
Respostas 13
Participantes 7