Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/10/2015, 14:55
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: limitar una cantidad numerica en un jtextfield

setMaximumSize es un método de Class JComponent, de la cual hereda JTextField. Su definición es la siguiente:

setMaximumSize(Dimension maximumSize)
Sets the maximum size of this component to a constant value.

El tamaño del que habla es de la dimensión visual... de lo grande o pequeño visualmente hablando que puede ser el componente. Nada que ver con el valor que contiene.

Si quieres limitar el valor que contiene lo tienes que hacer por código. Ya que el JTextField almacena cualquier tipo de texto, no solo números. Tienes que controlar que el texto que contiene (en forma de String) sea un número... y que ese número sea menor o igual a 2000, o 1000 según el checkbox. Pero eso lo tienes que controlar por código hecho por ti. No hay ningún método en JTextField que lo controle. (Al menos que yo conozca)

Puedes controlar el texto introducido de muchas maneras. Eso ya como más te guste. Yo recuerdo una calculadora en la cual se podían pulsar las teclas de la calculadora... o directamente clickar en el JTextField y escribir con el teclado. Al hacerlo así, yo utilizaba la interfaz ActionListener, y atendía el evento ChangeListener, en el cual controlaba el carácter introducido. Si era número lo dejaba, si era letra la borraba, dejando el valor que tuviese previamente. Si está escrito un 35 y se pulsaba una A o a... la borraba dejando el 35.

Otras personas dejan escribir todo lo que se quiera, y la hora de utilizar ese dato mediante algún botón o alguna acción, enseñaban un cuadro de diálogo indicando que se escribiese un número, y después borraban el contenido entero del JTextField.

Cada uno lo controla como quiere.

Última edición por Kritik; 25/10/2015 a las 15:02