在java Swing中创建带有递增和递减按钮的数字文本框

发布于 2024-11-17 02:19:51 字数 343 浏览 4 评论 0 原文

如何在 java swing 中创建一个数字文本框,它有两个按钮(向上和向下),分别增加和减少文本框中的值。此外,此文本框必须可使用仅数字值进行编辑。像这样

Numeric Text Box

我尝试将两个按钮放在文本框附近,然后手动执行按钮单击操作。

My try Text Box

有没有其他方法可以以更好的方式做到这一点并获得与第一张图片。

谢谢 :)

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 :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水水月牙 2024-11-24 02:19:51

使用 JSpinner

如何在 java 中使用 Spinners


根据您的评论:

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

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);
如何视而不见 2024-11-24 02:19:51

JSpinner 需要仅允许数字输入,需要一些技巧在它的模型中,但你的第二个。图片看起来像两个 JButtons (使用 JButton#setFocucPainted(false )) 和一个 JFormattedTextField 具有数字格式,具有 min/maxDecimalPaces,具有舍入模式,

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

然后 JButton 的 rel="nofollow">Action 将是

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

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文