Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Valor mínimo jSpinField

Buenos días,
Estoy desarrollando una aplicación con NetBeans y he podido comprobar que al poner un valor mínimo a un jSpinField con las teclas de subir y bajar ese mínimo no puede sobrepasarse pero si escribo -1 y su mínimo es 0 en lugar de corregir el valor y poner 0 me escribe el -1 y lo deja en color rojo.
¿Hay alguna forma de hacer que ese valor se autocorrija para evitar luego inconvenientes?

Un saludo y gracias de antemano.

octubre 11, 2013 | Registered CommenterElena

Y no puedes controlarlo tu en tu codigo?

Un saludo

octubre 11, 2013 | Unregistered CommenterUnoPorAhi

Puedo controlar el mínimo pero no sé cómo puedo hacer que cuando el usuario haya metido menos del mínimo se ponga automáticamente el mínimo establecido.

octubre 11, 2013 | Registered CommenterElena

Y no puedes implementar el evento de change del componente jSpinField para que cada vez que este cambie comprobar si es valor es menor que getMinimum() y si es asi hacerle un setValue(getMinimum())?

Un saludo

octubre 11, 2013 | Unregistered CommenterUnoPorAhi

Lo he intentado pero cuando lo modifico el valor se pone en rojo ya que es menor que el mínimo y la propiedad propertyChange() no se ejecuta

octubre 11, 2013 | Registered CommenterElena

Mirando el codigo fuente del componente aqui:
http://www.javadocexamples.com/java_source/com/toedter/components/JSpinField.java.html

Veo en el metodo public void caretUpdate(CaretEvent e) { que no efectivamente no controla si el value es menor que el minimo en el textbox. Simplement se pone en rojo.

Siempre puedes crearte que propio componente MyJSpinField que herede del anterior y sobreescribes el metodo caretUpdate para que controle como tu quieres la entrada chequeando minimos y maximos...

Un saludo

octubre 11, 2013 | Unregistered CommenterUnoPorAhi

Pero es un lío muy grande porque entonces tendré que posicionar el componente de forma manual mediante código y establecer todos los parámetros yo mismo, no?

octubre 12, 2013 | Unregistered Commentermchg

Guenas.

Si sobreescribes el método te bastaría con controlar los valores que te interesan y despues llamar a super.caretUpdate.
No es necesario que te curres toda su funcionalidad.

Un saludo

octubre 12, 2013 | Unregistered CommenterPaposo