Faça JSpinner Selecionar Texto Quando Focado
Eu gostaria de alterar o comportamento de um JSpinner para que, quando você clicar no texto, ele o selecione. Isso facilita a substituição do campo pelo valor desejado. Infelizmente, não consigo fazer o comportamento funcionar e, em vez disso, ele insere o cursor no texto sem selecionar o que já está lá.
Eu tentei adicionar um Listener de foco ao próprio JSwinner e à própria área de texto, via((DefaultEditor) this.getEditor()).getTextField()
, no entanto, nenhum destes parece ter o efeito pretendido. Meu código (para o próprio JSpinner) é o seguinte:
spinner.addFocusListener(new FocusAdapter(){
@Override
public void focusGained(FocusEvent e) {
((DefaultEditor) ((JSpinner) e.getSource()).getEditor()).getTextField().selectAll();
}
});
Não tenho certeza qual é o problema. Se isso importa, estou executando o Mac OS 10.7.5 e o Java 6u43.
EDIT: eu coloquei umSystem.out.println
logo no início do método focusGained e descobri que nunca foi chamado. Então parece que ficar focado no JSpinner não está sendo registrado. Novamente, tentei colocar o focusAdpater no spinner e no campo de texto (não ao mesmo tempo).