[Resolvido]Duvida em jformattedtextfield

4 respostas
bacoco

Olá, tenho os meus jformattedtextfield de data já feitos corretamente, porém tem 2 coisas que gostaria de fazer.
Uma é aumentar o tamanho deles, quando eles estão vazios " / / " eles aparecem certo,ao preencher o texto não aparece por inteiro na caixa,gostaria de poder mudar o tamanho deles para que fique visivel
(não precisa ir aumentando de tamanho conforme vai sendo digitado)
ps: tentei o setSize(int,int) porém não funciona

Segunda coisa é, como o campo está " / / " quando o usuario clica(geralmente no meio) e começa a inserir ele começa a escrever do meio par frente " / X/XXXX" quero que assim que ele clique no campo ele seja jogado diretamente para a primeira casa.

JFormattedTextField dtInicio = new JFormattedTextField();  
        JFormattedTextField dtFim = new JFormattedTextField();          

        dtInicio.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("dd/MM/yyyy"))));  
        dtInicio.setToolTipText("Digite a data no formato DIA/MÊS/ANO exemplo: 01/02/2013 *01 Fevereiro de 2013*.");  

        dtFim.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("dd/MM/yyyy"))));  
        dtFim.setToolTipText("Digite a data no formato DIA/MÊS/ANO exemplo: 01/02/2013 *01 Fevereiro de 2013*.");  

        MaskFormatter format;   
        try {  
            format = new MaskFormatter("##/##/####");  
            format.install(dtInicio);  
        } catch (ParseException ex) {  
            Logger.getLogger("CLASSE").log(Level.SEVERE, null, ex);  
        }  

        try {  
            format = new MaskFormatter("##/##/####");  
            format.install(dtFim);  
        } catch (ParseException ex) {  
            Logger.getLogger("CLASSE").log(Level.SEVERE, null, ex);  
        }

4 Respostas

Eder_Peixoto

Referente à primeira pergunta, acho que chamar setFont(Font) ou setCaret(Caret) deve lhe ajudar.

Quanto à segunda pergunta, crie um ouvinte pra tratar eventos de clique do mouse, e daí invocar o método setCaretPosition( (int)0 ). Este método altera a posição do cursor (caret) de edição.

bacoco

Obrigado Eder, consegui fazer a posição com o setCaretPosition(0); como você sugeriu, porém com relação ao tamanho do input não consegui…
Alguma outra sugestão?
Obrigado

Eder_Peixoto

bacoco,

Como assim NÃO está conseguindo visualizar o texto por inteiro? O teu problema está na largura ou altura do JFormattedTextField? O JFormattedTextField possui os atributos width e height, que são a largura e altura do componente. Seriam esses atributos que precisa alterar?

bacoco

Olá Eder, eu estava tentando fazer o seguinte componente.setSize(10,10); porém não estava funcionando compilava sem erros mais não alterava mesmo o tamanho dele, resolvi fazer o seguinte
declarei 2 variaves int e chamei componente.setSize(variavel1,variavel2); e funcionou, ainda não entendi porque a forma como eu estava chamando antes não funcionava mais agora está resolvido,obrigado pela ajuda cara.

Criado 7 de fevereiro de 2013
Ultima resposta 8 de fev. de 2013
Respostas 4
Participantes 2