Mascara de peso e altura rich:jquery

7 respostas
G

Preciso de uma mascara tipo com a maskmoney rich:jquery

:smiley:

7 Respostas

J

Não ententi, qual mascara voce precisa ?

G

uma mascara que eu possa usar em medidas de peso e altura.
ex Peso- 105,10
Altura 1,80

Desejo uma mascara do rich:jquery

Ja usou a maskMoney? Entao, quero uma parecida, que a virgula aparece na casa decimal conforme eu digite os numeros

J

Acho que é isso que voce precisa, eu uso uma classe chamada JMoneyField para fazer isso e como eu uso no NetBeans eu chamo ela la em “criação de codigo personalizado” do campo (botao direito no campo, propriedadades, codigo)

em Criação de codigo personalizado coloque o seguinte: new JMoneyField(9)

import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

import javax.swing.JFormattedTextField;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
import javax.swing.text.SimpleAttributeSet;


public class JMoneyField extends JFormattedTextField {

        // modificado por Dario Basso Cardoso
        private int iMaxLength;

	private static final long serialVersionUID = -5712106034509737967L;
	private static final SimpleAttributeSet nullAttribute = new SimpleAttributeSet();

    /**
     * Creates a new instance of JMoneyField
     */

    // modificado por Dario Basso Cardoso
    public JMoneyField(int maxlen) {
        iMaxLength = maxlen;

    	this.setHorizontalAlignment( JTextField.RIGHT );
    	this.setDocument(new MoneyFieldDocument());
        this.addFocusListener(new MoneyFieldFocusListener());
        this.setText("0,00");
        this.addCaretListener(new CaretListener(){
        	public void caretUpdate(CaretEvent e) {
        		if (e.getDot() != getText().length() ) {
        			getCaret().setDot(getText().length());
        		}
        	}
        });
    }

    private final class MoneyFieldFocusListener extends FocusAdapter{
    	public void focusGained(FocusEvent e) {
			selectAll();
		}
    }

    private final class MoneyFieldDocument extends PlainDocument {
		private static final long serialVersionUID = -3802846632709128803L;

		public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
     		String original = getText(0,getLength());

                // modificado por Dario Basso Cardoso
     		if (original.length()>=iMaxLength)
                    java.awt.Toolkit.getDefaultToolkit().beep();

                // modificado por Dario Basso Cardoso
                if (original.length()<iMaxLength) {

                    StringBuffer mascarado = new StringBuffer();
     			if (a != nullAttribute) {
     				//limpa o campo
     				remove(-1,getLength());

     				mascarado.append((original+str).replaceAll("[^0-9]",""));
         			for (int i = 0; i < mascarado.length(); i++){
         				if (!Character.isDigit(mascarado.charAt(i))){
         					mascarado.deleteCharAt(i);
         				}
         			}
         			Long number = new Long(mascarado.toString());

         			mascarado.replace(0, mascarado.length(), number.toString());

         			if ( mascarado.length() < 3 )
         			{
	         			if ( mascarado.length() == 1 ) {
	         				mascarado.insert(0,"0");
	         				mascarado.insert(0,",");
	         				mascarado.insert(0,"0");
	         			}else if ( mascarado.length() == 2 ) {
	         				mascarado.insert(0,",");
	         				mascarado.insert(0,"0");
	         			}
         			}else{
         				mascarado.insert(mascarado.length()-2,",");
         			}

         			if ( mascarado.length() > 6 ) {
         				mascarado.insert(mascarado.length()-6, '.');
         				if (mascarado.length() > 10 ) {
         					mascarado.insert(mascarado.length()-10, '.');
         					if (mascarado.length() > 14 ) {
             					mascarado.insert(mascarado.length()-14, '.');
         					}
         				}
         			}
         			super.insertString(0, mascarado.toString(), a);
     			}else{
     				if (original.length() == 0){
     					super.insertString(0, "0,00", a);
     				}
     			}
     		}
     	}

    	@Override
    	public void remove(int offs, int len) throws BadLocationException {
    		if ( len == getLength() ) {
    			super.remove(0, len);
    			if (offs != -1){
	    			insertString(0, "",nullAttribute);
    			}
    		}else{
    			String original = getText(0, getLength()).substring(0, offs) + getText(0, getLength()).substring(offs+len);
    			super.remove(0, getLength());
    			insertString(0,original,null);
    		}
    	}

    }
}

se voce tiver duvida de como usar a classe me informe que eu te ajudo.
espero ter ajudado.

V

Dúvida movida para o fórum de desenvolvimento web. Por favor, leia com atenção a descrição dos fóruns antes de postar.
Assim você evita respostas em Swing, como a do colega acima.

J

ViniGodoy:
Dúvida movida para o fórum de desenvolvimento web. Por favor, leia com atenção a descrição dos fóruns antes de postar.
Assim você evita respostas em Swing, como a do colega acima.

Me desculpe mas nao entendi, fiz algo de errado em tentar responder a duvida do amigo?

V

Não, estava comentando para o autor do tópico que ele abriu no local errado.

J

Não, estava comentando para o autor do tópico que ele abriu no local errado.
rsrsrs… desculpa eu tinha entendido errado.

Criado 5 de setembro de 2011
Ultima resposta 7 de set. de 2011
Respostas 7
Participantes 3