Decimal format + number format

Galera, peguei esse exemplo no forum, mas não roda como eu gostaria.
Quando eu digito o número 1 me retorna 1,00, mas o que eu quero e 0,01. Se eu digitar o próximo número o 2 (dois) por exemplo fica 12,00 mas eu quero 0,12, se eu digitar 121415 quero que o valor formatado seja 1.214,15. alguem pode me dar uma solução.

	public JFormattedTextField getFormattedValor()
	{   
	    if (formattedTxtValor == null) 
	    {
  	        NumberFormat decimalFormat = new DecimalFormat("#,###.00");
  	        NumberFormatter numero = new NumberFormatter(decimalFormat);
   	        numero.setAllowsInvalid(false); // permite que números sejam digitados

   	        formattedTxtValor = new JFormattedTextField(numero);  
   	        formattedTxtValor.setSize(85,18);
   	        formattedTxtValor.setLocation(coluna04,linha02-15);
   	        formattedTxtValor.setHorizontalAlignment(javax.swing.JTextField.RIGHT);   
    	}   
	    return formattedTxtValor;   
	} 

Não vai ser muito fácil fazer isso, a melhor coisa seria mandar o usuário digitar= 0.01 ou 0.12 e assim por diante, mas se tu deseja realmente continuar com isso vai ai um começo (não está funcionando é apenas um começo):

package exemplos;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.NumberFormatter;

public class Teste {

	public Teste(){
		try {			
			MyFormatter nft = new MyFormatter(new DecimalFormat("#,##0.00"));
			nft.setAllowsInvalid(false);
			
			JFormattedTextField field = new JFormattedTextField(nft);
			field.setPreferredSize(new Dimension(400, 30));
			
			JFrame j = new JFrame();
			j.setLayout(new FlowLayout());
			j.add(field);
			j.setVisible(true);
			j.pack();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	class MyFormatter extends NumberFormatter{
		public MyFormatter(NumberFormat format){
			super(format);
		}
		
		@Override
		public String valueToString(Object value) throws ParseException {
			try{
				double valor = Double.parseDouble(value.toString());
				return super.valueToString(valor/100.0);
			}
			catch (Exception e) {
				return super.valueToString(value);
			}
		}
	}
	
	public static void main(String[] args) {
		new Teste();
	}
}