java - try - Es posible en Swing configurar un JTextField para que solo acepte números?
validar campos solo numeros en java (2)
crear una clase personalizada que extienda PlainDocument
public class NumericDocument extends PlainDocument
En esta clase, anule InsertString. Muchos ejemplos en línea que usan el método Character.isDigit para verificar cada valor ingresado para verificar si es numérico o no.
Cuando tu creación JTextField lo haces usando el
JTextField numericTextOnlyField = new JTextField(new NumericDocument())
dentro del método insertString puedes verificar para ver si los valores insertados están dentro del rango que permites
Posible duplicado:
¿Hay alguna forma de aceptar solo valores numéricos en un JTextField?
¿Hay alguna funcionalidad en JTextField of Swing que permita solo números positivos dentro de un rango de números?
Ejemplo: Solo puedo ingresar números entre 10 y 30. Los números fuera de este rango ni siquiera aparecerán en el campo.
Use un JSpinner
con un SpinnerNumberModel
: el usuario final se lo agradecerá. OK, no literalmente, pero al menos no maldecirán tu nombre por forzarlos a escribir algo que les gustaría elegir usando las teclas de flecha.
P.EJ
import javax.swing.*;
class NumberChooser {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SpinnerNumberModel numberModel = new SpinnerNumberModel(
new Integer(15), // value
new Integer(10), // min
new Integer(30), // max
new Integer(1) // step
);
JSpinner numberChooser = new JSpinner(numberModel);
JOptionPane.showMessageDialog(null, numberChooser);
System.out.println("Number: " + numberChooser.getValue());
}
});
}
}