Forum Main Page > Java Básico

Problema com caixa de texto formatada[jFormattedTxtField]

Goto page 1

New Topic    Reply Message


  1. jeangleison
    Offline
    Posts: 15

    Comment Arrow

    Publicado em: 26/05/2009 12:01:00

    Galera,
    eu estou fazendo uma calculadora, estou usando o NetBeans, usei um jFormattedTxtField para a tela e defini uma mascara so pra numeros nas propriedades, mas ainda assim qundo eu digito letras, elas aparecem como fazer pra não aparecerem?
    Outro pro é, qundo eu aperto o botão para inserir os numeros pra fazr operações aew tudo bem ele insere e eu consigo fazer sem probelmas, mas qundo eu digito não faz.
    Qundo eu digito 1 aperto a tecla de somar e dpois clico em outro numero ele faz a operação mas qundo eu digito por exeplo 12 na tela e aperto + aparece assim na tela 12.00.

    espero que vcs possam me ajudar
    []s
    _________________
    Jean Gleison de S. Silva
    e-mail: jeangleison2@gmail.com
    msn: jeanvidaloucaparte1@hotmail.com




  1. RicMax
    Offline
    Posts: 232

    Comment Arrow

    Publicado em: 26/05/2009 13:12:27

    Posta o código aqui amigão.

    Ninguém aqui curte fazer o Dever de Casa de ninguém.

    Desculpe o mal jeito do pedido, mas é que já houve perguntas sobre o MESMO exercicio aqui e um outro "cidadão" pedindo ajuda URGENTE!!!!1!!1111.

    Se for uma dúvida legitima, e já tem algo pronto, posta que ajudaremos com prazer.
    _________________
    KISS: Keep It Simple Stupid;
    JEDI: Java Enchanted Developer Insider;
    POG: O lado negro da Força;




  1. jeangleison
    Offline
    Posts: 15

    Comment Arrow

    Publicado em: 27/05/2009 23:31:41

    cara num é que eu queira que ninguém faça meu dever de casa, se não adintaria de q? eu não ia aprebder nada e ainda por cima não ia tyer créditos para com o desenvolvimento! Só perguntei como fazer, só os passos entende? uma dica de como fazer! Só usei a calculadora como contexto!
    Pense numa jFormattedTextField que cuja a mascara é só pra números, como faço pra aparecer somente numeros quando eu digitar!?
    Vo usar o keyPressed será que dá certo?
    Entendeu agora cara?! e desculpa qulqer coisa vlws aew grato!
    _________________
    Jean Gleison de S. Silva
    e-mail: jeangleison2@gmail.com
    msn: jeanvidaloucaparte1@hotmail.com




  1. jesuino
    Offline
    Posts: 1374

    Comment Arrow

    Publicado em: 28/05/2009 00:13:00

    E ae, boa noite!!!

    O JFormatted Text Field é bem fácil de usar!!

    Não use o listener que disse!! É pior que reiventar a roda... O campo de texto formatado é bem fácil e "entendível", abaixo o exemplo:



    Olha aqui para ver as opções de formatação:

    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/MaskFormatter.html

    Eu, particularmente, curto muito essa forma de formatar, é bem rápida e precisa!

    OBS: Nobre da sua parte não se sentir bem quando mostra um código que não foi você que fez! Nem todos são assim!

    Espero ter ajudado, posta ae mais dúvidas, se houverem, para ajudar de forma coletiva!

    OBS2: Editei, tinham uns errinhos de português :D


    _________________
    William Antônio Siqueira
    Siga-me no Twitter - Tudo sobre JavaFX e um pouco mais
    Veja meu Blog




  1. RicMax
    Offline
    Posts: 232

    Comment Arrow

    Publicado em: 28/05/2009 12:29:03

    Apoiado jesuino.

    Louvável sua atitude companheiro, mas a sua pergunta foi ruim.
    Se tivesse feito a pergunta sobre o JFormattedTextField no inicio, teria sua resposta fácil.

    Se você leu as páginas que mandei, deve ter entendido como nos sentimos aqui no JAVAFREE sobre Dever de Casa.

    Abraço e sucesso.
    _________________
    KISS: Keep It Simple Stupid;
    JEDI: Java Enchanted Developer Insider;
    POG: O lado negro da Força;




  1. jesuino
    Online
    Posts: 1374

    Comment Arrow

    Publicado em: 28/05/2009 12:58:36

    Verdade, o problema é que quando ajudamos em dever de casa, ajudamos também com o mercado que temos, muitas pessoas não qualificadas, com certificado. Contribuimos com a facilidade da vida dos outros, irão achar que tudo é fácil!


    _________________
    William Antônio Siqueira
    Siga-me no Twitter - Tudo sobre JavaFX e um pouco mais
    Veja meu Blog




  1. simu
    Offline
    Posts: 5424

    Comment Arrow

    Publicado em: 28/05/2009 13:13:28

    Oi,
    uma outra maneira seria usar um JTextField e um PlainDocument com um DocumentFilter alterado. (EU pessoalmente não gosto do JFormattedTextField, pelo menos para entrada de dados.)

    O DocumentFilter é um pouco mais trabalhoso mas possibilita um controle melhor do que é permitido ou não:

    []]
    _________________
    Carlos Heuberger
    GC do Javafree.org
    ____________________________________________________________________________

    This posting is provided AS IS with
    no warranties and confers no rights.




  1. jesuino
    Online
    Posts: 1374

    Comment Arrow

    Publicado em: 28/05/2009 21:47:28

    Nossa!! Vivendo e aprendendo. Não conhecia esse componente, me parece ser bem melhor por aceitar uma ER como máscara, assim não há limitações.
    Muitas vezes tive problemas com o Formatted(...) não deixar o usuário escrever até o fim!
    O tópico não criado por mim, mas agradeço também!! Obrigado!
    _________________
    William Antônio Siqueira
    Siga-me no Twitter - Tudo sobre JavaFX e um pouco mais
    Veja meu Blog




  1. jeangleison
    Offline
    Posts: 15

    Comment Arrow

    Publicado em: 29/05/2009 00:26:15

    Obg galera do javaFree e muito obg mesmo desculpa aew...vou ser mais objetivo nas minhas perguntas...é que sou novo na área e no grupo aqui...!
    _________________
    Jean Gleison de S. Silva
    e-mail: jeangleison2@gmail.com
    msn: jeanvidaloucaparte1@hotmail.com




  1. simu
    Offline
    Posts: 5424

    Comment Arrow

    Publicado em: 29/05/2009 11:26:42

    jesuino:
    Nossa!! Vivendo e aprendendo. Não conhecia esse componente, me parece ser bem melhor por aceitar uma ER como máscara, assim não há limitações.
    Muitas vezes tive problemas com o Formatted(...) não deixar o usuário escrever até o fim!
    O tópico não criado por mim, mas agradeço também!! Obrigado!


    aprendí esse dias no stackoverflow...
    a vantagem é maior... pois não está restrito ao uso de ER, voce pode programar qualquer coisa lá dentro, só não fica bom ser for algo demorado...
    []]
    _________________
    Carlos Heuberger
    GC do Javafree.org
    ____________________________________________________________________________

    This posting is provided AS IS with
    no warranties and confers no rights.




  1. jesuino
    Online
    Posts: 1374

    Comment Arrow

    Publicado em: 29/05/2009 12:01:15

    simu:

    O DocumentFilter é um pouco mais trabalhoso mas possibilita um controle melhor do que é permitido ou não:



    Como eu realmente curti essa forma de formatar, Estou fazendo uma API que facilite o uso(comecei as 8 de hoje :hauhau: ), depois irei utilizar em meus projetos, quando tiver bem testada, podemos colocar nos minis exemplos!!

    Vou tentar explicar rapidinho aqui.

    A idéia principal é deixar o filro mais acessível e o documento flexível!
    O próximo passo é usar a fábrica para criar novos tipos de campo de texto, ou gerar tipos concretos, assim poderíamos ter:



    Sem mexer em mais nada no seu projeto existente. :metal:

    Para o filtro, usei uma fábrica(padrão Factory) meio que alterada. Daí temos filtros de vários tipos. A idéia era ficar todas as configurações no filtro, usando ele como fábrica, mas ainda era um nível baixo de acesso, precisavamos criar uma camada acima, para que o documento conhecesse ele, não o programa principal.

    Assim ficou o filtro(em construção :mrgreen: ):


    Em seguida, criei uma fábrica de documento. O que me foi horrível, pois quando fui criar um documento novo tive que mexer dentro do código da fábrica e isso poderia alterar quem usava o documento, tendo que conhecer os parâmetros para chamar a fábrica. Assim, decide usar o estratégia. Dessa forma, eu poderia simplesmente adicionar uma nova implementação da minha interface, mexendo em dois prontos e enfraquecendo a ligação entre o quem usa o documento e o documento concreto, pois esa poderia ser através de uma interface. Uma simples Composição! (Editado, lembrei agora que era uma composição: Prefira composição do que herança)
    A interface tem só um método:


    Assim, as concretas devem implementar esse método. Fiz três, para teste.

    Uma para filtrar o que não é número:



    Filtra só letras:



    Recebe a ER para filtrar:



    Estava pronto, temos campos de texto formatados com só uma linha de código! Mas ainda queria testar se realmente tava legal, então eu criei uma nova formatação, com classe concreta:



    Perfeito!! Funcionou! Mas eu nem me impressionei muito. Primeiro porque padrões são assim mesmo, fazem mágicas! Segundo porque ainda não estava daquele jeito, pois a classe final tinha que conhecer os tipos de documento, o que não é legal. Assim, poderíamos criar tipos de campos de texto.
    Criei só uma para teste, porque esta prática tem muitas falhas, e a primeira dela é que "você está programando para uma implementação, não para uma interface", a outra é a segurança, pois o método setDocument pode ser alterado "por fora", então o nosso campo poderia perder a finalidade, se alguém mexer nesse método. É claro que existem muitas soluções(mais padrões e blá blá) para isso, mas já é outra história.

    Olha o exemplo de concreta:



    Agora é a parte mais legal, testar!!

    Fiz um JFrame e testei alguns tipos:



    Rodou legal, estou incluido o projeto para quem quiser se divertir! (EDITADO: Infelizmente o proxy da empresa não está me permitindo fazer upload =[)
    Para quem quiser fazer o projeto passo passo, minha estrutura de pastas:
    0

    Finalizando: É claro que deve haver outras formas de fazer formatação sem ter que fazer um monte de coisa assim, mas serve para exemplificar e ensinar de forma didática. Além de colocar em prática os padrões. Existem muitos pontos a melhorar ai, mas é que fiz correndo :mrgreen: .
    Enfim, espero que esse exemplo ajude alguém. Sei que eu irei utilizar a "API" daqui pra frente em meus projetos ^^.
    _________________
    William Antônio Siqueira
    Siga-me no Twitter - Tudo sobre JavaFX e um pouco mais
    Veja meu Blog




  1. Relacionados





New Topic    Reply Message     Forum Main Page -> Java Básico


Goto page 1