Como fazer para um jtextfield aceitar apenas número mas com exceção para vírgula e ponto?

2 respostas Resolvido
java
T

Como fazer para um jtextfield aceitar apenas número mas com exceção para vírgula e ponto?
Tenho esta classe abaixo no meu projeto: Funciona muito bem, mas quero usar esta classe em um jtextfield que irá receber valores float (será preço do produto).

Mas aí não consigo usar (,) ou (.) para separar os centavos.

public class ApenasNumeros extends PlainDocument {

    @Override

    public void insertString(int offset, String str, javax.swing.text.AttributeSet attr) throws BadLocationException {
        super.insertString(offset, str.replaceAll("[^0-9]", ""), attr);
    }
    
    public void replace(int offset, String str, javax.swing.text.AttributeSet attr) throws BadLocationException {
        super.insertString(offset, str.replaceAll("[^0-9]", ""), attr);
    }
}

2 Respostas

4
Solucao aceita

utilize JFormattedTextField, essa belezura existe para isso msm.

Se quizer o código de construção dele, a ultima linha e responsável por definir o formato que vc quer:

jFormattedTextField1 = new javax.swing.JFormattedTextField();
jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter()));
T

ok, obrigado

Criado 6 de agosto de 2016
Ultima resposta 30 de ago. de 2016
Respostas 2
Participantes 2