Campos formatados na digitação

6 respostas
J

Opa

Estou fazendo algumas coisas utilizando o Struts 1.x, e gostaria de saber como faço para deixar uma campo com uma formatação, ex.: tipo double, quando o usuário digitar 1,00 já criando a vírgula e preenchendo as duas casas decimais, sei o bean:write tem o format, mas é para a mostrar os dados. Teria q fazer isso na mão? Se sim, poderiam dar um exemplo?

Obrigado.

6 Respostas

nadilsons

Você vai ter que fazer uma funcao javascript para este propósito…

nbluis

Indico a voçê o forum do Gujs para este tipo de auxilio.

Até…

J

Alguém teria um exemplo de uma função javascript desse tipo?

Romeo

Tenho uma classe desktop que faz isso, serve? é um JTextField modificado

J

opa, posta ae para q possamos dar uma olhada.

obrigado

Romeo
import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 
 /**
  *
  * @author NETO
  */
 public class JDoubleField extends javax.swing.JTextField{
     
     private String value = "000";
     /** Creates a new instance of JDoubleField */
     public JDoubleField() {
         super();
         instalar();
         setText(instalarMask(value));
     }
 
     public JDoubleField(String text) {
         instalar();
         super.setText(instalarMask(text));
         
     }
     
     private synchronized void atualizar(char key){
         if(key >= '0' && key <='9'){
             value = value + key;
         }
         else
         if (key == '\b'){
             if(!value.equals("000") && value.length()>1)
                 value = value.substring(0,value.length()-1);
         }        
     }
     
     private synchronized String instalarMask(String value){
         if(value.charAt(0) == '0'){
             value = value.substring(1,value.length());
         }
         
         while(value.length()<3)
             value = "0" + value;
         
         
         this.value = value;
         return value.substring(0,value.length()-2) +  "," + value.substring(value.length()-2,value.length());
     }
     
     private void instalar(){
         super.setHorizontalAlignment(javax.swing.JTextField.TRAILING);
         super.addKeyListener(new KeyListener(){
             
             public void keyTyped(KeyEvent e) {
                 atualizar(e.getKeyChar());
                 setText(instalarMask(value));
                 e.consume();
             }
 
             public void keyPressed(KeyEvent e) {
             }
 
             public void keyReleased(KeyEvent e) {
             }
             
         });
     }
 
     public double getValue() {
         String valor = getText().replace(',','.');
         return Double.parseDouble( valor );
     }
 
     
 }
Criado 23 de março de 2007
Ultima resposta 23 de mar. de 2007
Respostas 6
Participantes 4