【发布时间】:2011-06-22 06:15:11
【问题描述】:
如何在 java swing 中创建一个数字文本框,它有两个按钮(向上和向下),分别递增和递减文本框中的值。此外,此文本框必须可以使用 ONLY NUMERIC VALUES 进行编辑。像这样的
我尝试在文本框附近放置两个按钮并手动执行按钮单击操作。
是否有任何其他方法可以让我以更好的方式做到这一点,并获得与第一张图片相似的结果。
谢谢:)
【问题讨论】:
标签: java swing textbox numeric
如何在 java swing 中创建一个数字文本框,它有两个按钮(向上和向下),分别递增和递减文本框中的值。此外,此文本框必须可以使用 ONLY NUMERIC VALUES 进行编辑。像这样的
我尝试在文本框附近放置两个按钮并手动执行按钮单击操作。
是否有任何其他方法可以让我以更好的方式做到这一点,并获得与第一张图片相似的结果。
谢谢:)
【问题讨论】:
标签: java swing textbox numeric
使用JSpinner
根据您的评论:
SpinnerModel model = new SpinnerNumberModel(9.9, 1, 15, 0.1);
JSpinner spinner = new JSpinner(model);
【讨论】:
9.8000000000007 当从 9.9 递减时和类似的问题
JSpinner 需要只允许数字输入,在其模型中需要一些 hack,但你的第二个。图片看起来像两个JButtons(带有JButton#setFocucPainted(false))和一个带有数字格式的JFormattedTextField,带有min/maxDecimalPaces,带有roundingMode
myDoubleFormat.setMinimumFractionDigits(2);
myDoubleForma.setMaximumFractionDigits(2);
myDoubleForma.setRoundingMode(RoundingMode.HALF_UP);
然后Action 来自JButton 将是
myFtdTextField.setValue(((Number) myFtdTextField.getValue()).doubleValue() +/- 0.1)
【讨论】: