[RESOLVIDO] JCalendar, JDateChooser como selecionar o campo (selectall) ao receber foco/focus?

5 respostas
infocontroller

Amigos, será que alguém pode me dar um exemplo de como faço para que o campo JDateChooser selecione tudo quando receber o foco?
Exemplo: 27/08/2013 onde após receber o foco ficasse tudo selecionado.

Já observei que quando se move o foco para o item através do GrabFocus(), o cursor some.

Agradeço desde já aos amigos que se dispuserem a me auxiliar.

5 Respostas

lucasirc

cara,

seria bom tentar sugerir pro pessoal que criaram a lib jCalendar colocar um selectAll() direto nas Classes JCalendar e JDateChooser

enquanto não colocam…
fui no fundo do poço e peguei o componente \o

JDateChooser data = new JDateChooser(new Date());
        JTextField jtextField = (JTextField) data.getDateEditor().getUiComponent();
        jtextField.addFocusListener(new FocusAdapter() {
            @Override
            public void focusGained(FocusEvent e) {
                JTextField chooser = (JTextField) e.getSource();
                chooser.selectAll();
            }
        });

só cuidado com o data.getDateEditor().getUiComponent(); tem que retornar uma instancia de JTextField, seria bom testar com instanceof

abraços

infocontroller

Obrigado lucasirc, vou testar aqui e posto o resultado. Abraço!

infocontroller

Amigo, apesar de todos os meus esforços com meu restrito conhecimento, não consegui implementar o que você passou. Será que pode me ajudar?

Eu uso o NetBeans, inclui o campo de data, já fiz algumas coisas que considero avançadas, mas com esse eu não consegui. Obrigado desde já.

lucasirc

o que voce já fez?

o que voce não esta conseguindo fazer?

infocontroller

lucasirc:
o que voce já fez?

o que voce não esta conseguindo fazer?

Desculpe amigo Lucas, já consegui. Inexperiência mesmo.

Vou postar como fiz para o NetBeans:

Cliquei com o botão direito no campo, fui em personalizar código e deixei desta forma:

dataReciboEmissao = new com.toedter.calendar.JDateChooser("dd/MM/yyyy", "##/##/#####", '_'); // Código adicionando o componente ao contêiner pai - não mostrado aqui JTextField jtextField = (JTextField) dataReciboEmissao.getDateEditor().getUiComponent(); jtextField.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { JTextField chooser = (JTextField) e.getSource(); chooser.selectAll(); } });

Muito obrigado Lucas! Passei dias procurando esta solução.

Criado 27 de março de 2013
Ultima resposta 9 de abr. de 2013
Respostas 5
Participantes 2