Создать числовое текстовое поле в Java Swing с помощью кнопок увеличения и уменьшения - PullRequest
10 голосов
/ 22 июня 2011

Как создать числовое текстовое поле в java swing, имеющее две кнопки (вверх и вниз), которые увеличивают и уменьшают значение в текстовом поле соответственно. Также это текстовое поле должно быть редактируемым с ТОЛЬКО ЦИФРАМИ ЗНАЧЕНИЯМИ . Как то так

Numeric Text Box

Я попытался поместить две кнопки рядом с текстовым полем и вручную выполнить операцию при нажатии кнопки.

My try Text Box

Есть ли другой способ, с помощью которого я могу сделать это лучше и добиться результата, аналогичного первому изображению.

Спасибо:)

Ответы [ 2 ]

16 голосов
/ 22 июня 2011

Использование JSpinner

Как использовать Spinners в Java


На основании вашего комментария:

SpinnerModel model = new SpinnerNumberModel(9.9, 1, 15, 0.1);     
JSpinner spinner = new JSpinner(model);
2 голосов
/ 22 июня 2011

JSpinner нужен для того, чтобы разрешить только числовой ввод, для этого требуется хак для этой модели, но ваш второй.изображение выглядит как два JButtons (с JButton # setFocucPainted (false)) и одно JFormattedTextField с числовым форматом, с min / maxDecimalPaces, с округлениемMode

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

тогда Действие из JButton будет

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