14

How can I create a numeric text box in java swing , which has two buttons (up and down) which increments and decrements the value in the text box respectively. Also this text box must be editable with ONLY NUMERIC VALUES. Something like this

Numeric Text Box

I tried by placing two buttons near a text box and manually doing the operation on button click.

My try Text Box

Is there any other method in which I can do this in a better way and achieve a similar result as the first image.

Thanks :)

2 Answers 2

21

Use JSpinner

How to use Spinners in java


Based on your comment:

SpinnerModel model = new SpinnerNumberModel(9.9, 1, 15, 0.1);     
JSpinner spinner = new JSpinner(model);
Sign up to request clarification or add additional context in comments.

2 Comments

Can this be used to increment and decrement in steps of 0.1, cos, when I implemented the other way, float gave things like, 9.8000000000007 when decremented from 9.9 and similar problems
Use a SpinnerNumberModel for this. Provide 0.1 in step to make it change value by 0.1.
2

JSpinner need for allows numeric input only, required some hack for that in its Model, but your 2nd. picture looks like as two JButtons (with JButton#setFocucPainted(false)), and one JFormattedTextField with number Format, with min/maxDecimalPaces, with roundingMode

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

then Action from JButton will be

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

2 Comments

actually I need to create something similar to the first image, as i dont know how, I manually did it using two buttons and a text box. But think JSpinner did the trick.. :) Thanks :)
@Balanivash you are welcome :-) alternative always exist, about my post, nobody knows..., but for JSinner you have to implents this hack, read carrefully forums.oracle.com/forums/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.