2011-06-22 10 views
7

¿Cómo puedo crear un cuadro de texto numérico en java swing, que tiene dos botones (arriba y abajo) que aumenta y disminuye el valor en el cuadro de texto respectivamente. También este cuadro de texto debe ser editable con SOLO VALORES NUMÉRICOS. Algo como estoCrear un cuadro de texto numérico en java Cambiar con botones de incremento y disminución

Numeric Text Box

me trató mediante la colocación de dos botones cerca de un cuadro de texto y hacer manualmente la operación de clic de botón.

My try Text Box

¿Hay algún otro método en el que yo puedo hacer esto de una manera mejor y lograr un resultado similar al de la primera imagen.

Gracias :)

Respuesta

14

Uso JSpinner

How to use Spinners in java


Basado en su comentario:

SpinnerModel model = new SpinnerNumberModel(9.9, 1, 15, 0.1);  
JSpinner spinner = new JSpinner(model); 
+0

Puede esto se usa para incrementar y disminuir en pasos de 0.1, cos, cuando lo implementé de otra manera, float dio cosas como, '9.8000000000007' cuando disminuyó de' 9.9' y problemas similares – Balanivash

+0

Use un [SpinnerNumberModel] (http: // download .oracle.com/javase/6/docs/api/javax/swing/SpinnerNu mberModel.html) para esto. Proporcione 0.1 en paso para hacer que cambie el valor en 0.1. –

2

JSpinner necesidad de que sólo permite la entrada numérica, requieren algún artilugio para ese en su modelo , pero tu segundo. la imagen se parece como dos JButtons (con JButton # setFocucPainted (falso)), y uno JFormattedTextField con el número de formato, con min/maxDecimalPaces, con roundingMode

myDoubleFormat.setMinimumFractionDigits(2); 
myDoubleForma.setMaximumFractionDigits(2); 
myDoubleForma.setRoundingMode(RoundingMode.HALF_UP); 

continuación Action de JButton habrá

myFtdTextField.setValue(((Number) myFtdTextField.getValue()).doubleValue() +/- 0.1) 
+0

realmente necesito crear algo similar a la primera imagen, ya que no sé cómo, lo hice manualmente usando dos botones y un cuadro de texto. Pero creo que JSpinner hizo el truco .. :) Gracias :) – Balanivash

+0

@Balanivash eres bienvenido :-) alternativa siempre existe, sobre mi publicación, nadie lo sabe ..., pero para JSinner tienes que implementar este truco, lee cuidadosamente http: //forums.oracle.com/forums/thread.jspa?messageID=9337792� – mKorbel

Cuestiones relacionadas