Pergunta

Eu tenho uma tabela com uma TableCellEditor personalizado (DefaultCellEditor estendendo) com um JFormattedTextField como o componente de editor.

Agora eu tenho problema: quando eu pressionar um botão separado durante a edição. Quando o botão é pressionado, os restos de edição "aberto e ativo", enquanto eu quero-o para parar a edição para que as alterações feitas estaria disponível para as operações causados ??pelo botão.

Então, como fazer com que a edição de ser interrompido quando um botão é pressionado distinta. Tentei setFocusLostBehavior (JFormattedTextField.COMMIT) para o JFormattedTextField , mas não parecem ter efeito.

Hope alguém tem algumas boas idéias =)

Foi útil?

Solução

Você pode tentar

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

Outras dicas

Graças asalamon74, que funciona muito bem.

Não há debate sobre a coisa de Sun Bug Base de dados: Bug 4724980: JTable: Adicionar API para controlar o que acontece com as edições quando a tabela perde o foco. (também outras entradas de bugs são encontrados). As voltas terminateEditOnFocusLost sobre "comprometer-ou-cancelar" comportamento que podem ser vistos nas fontes Java para a classe JTable $ CellEditorRemover

E sim, é um pouco estranho que não está documentado nas APIs etc ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top