Создайте числовое текстовое поле в java Swing с помощью кнопок увеличения и уменьшения

Как я могу создать числовое текстовое поле в java swing, которое имеет две кнопки (вверх и вниз), которые увеличивают и уменьшают значение в текстовом поле соответственно. Также это текстовое поле должно быть доступно для редактирования с помощью ТОЛЬКО ЧИСЛОВЫЕ ЗНАЧЕНИЯ. Что-то вроде этого!--3-->

Numeric Text Box

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

My try Text Box

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

спасибо :)

2 ответов


использовать JSpinner

как использовать блесны в java


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

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

JSpinner need for позволяет только числовой ввод, требуется некоторый хак для этого в своей модели, но ваш 2-й. картинка выглядит как две компонентам jbutton (С JButton#setFocucPainted (false)) и один JFormattedTextField с числовым форматом, с min / maxDecimalPaces, с roundingMode

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

затем действие С JButton будет

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