Tirar foco célula JTable

6 respostas
B

Olá pessoal!

Tenho uma JTable com uma coluna q é editável. Esse JTable é atualizado com dados novos a cada opção selecionada em um JComboBox.
Tá tudo funcionando como esperado, exceto quando não finalizo a edição de uma célula e escolho outra opção no JComboBox, aí todas as linhas da tabela são atualizadas exceto a linha com a célula que comecei a editar.
É como se o programa esperasse eu terminar de editar essa célula pra depois poder atualizar toda a linha.

Alguém pode me ajudar a corrigir esse erro?

Obrigada!

6 Respostas

jorgefrancisco

oi Bruna…

tente esse comando:

suaJTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

acho que isso resolve seu problema!

[]'s

B

uau, funcionou!!!

Obrigada!

:smiley:

B

Puxa, agora q vi, quando eu escolho outra opção no JComboBox pra atualizar a tabela, se uma célula estava começada a editar o valor q eu tinha colocado nela vai fazer parte dos dados da outra tabela, não da anterior, a outra q eu escolhi no combo.

Alguém tem outra idéia do q eu posso fazer pra corrigir isso?

B

Na realidade penso q o valor q o usuário digitar só deverá ser colocado na tabela caso ele pressione enter.
Isso parece ser mais lógico. Então preciso de uma forma de tirar o foco da tabela e desprezar o valor q o usuário começou a editar.

O q vcs acham? Alguma sugestão?

Obrigada.

B

Olhem, o código tá assim:

tFormulas = new JTable();
mFormula = new FormulaTableModel();
tFormulas.setModel(mFormula);

tdFormula = new JTable();
mdFormula = new DetalheFormulaTableModel();
tdFormula.setModel(mdFormula);

e depois:

tFormulas.getSelectionModel().addListSelectionListener(new ListSelectionListener() {  
    public void valueChanged(ListSelectionEvent e) { 
        tdFormula.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
        populaTabela();
    }  
});
B

editingCanceled

funcionou.

Se alguém tiver uma sugestão melhor… eu aceito.

Obrigada!!!

Criado 11 de abril de 2008
Ultima resposta 15 de abr. de 2008
Respostas 6
Participantes 2