如何在java swing中创建一个数字文本框,它有两个按钮(向上和向下),分别递增和递减文本框中的值。此文本框也必须可以使用仅限数字值进行编辑。像这样的东西
我尝试在文本框附近放置两个按钮,然后在按钮单击时手动执行操作。
是否有其他方法可以更好地完成此操作并获得与第一张图像类似的结果。
谢谢:)
答案 0 :(得分:16)
使用JSpinner
根据您的评论:
SpinnerModel model = new SpinnerNumberModel(9.9, 1, 15, 0.1);
JSpinner spinner = new JSpinner(model);
答案 1 :(得分:2)
JSpinner需要仅允许数字输入,在其模型中需要一些黑客,但是你的第二个。图片看起来像两个JButtons(带有JButton#setFocucPainted(false)),一个JFormattedTextField带有数字格式,带有min / maxDecimalPaces,带有roundingMode
myDoubleFormat.setMinimumFractionDigits(2);
myDoubleForma.setMaximumFractionDigits(2);
myDoubleForma.setRoundingMode(RoundingMode.HALF_UP);
然后来自JButton
的{{3}}将
myFtdTextField.setValue(((Number) myFtdTextField.getValue()).doubleValue() +/- 0.1)