如何在 swing GUI 中使用 BigDecimal?

发布于 2024-08-26 07:27:55 字数 275 浏览 6 评论 0原文

我使用 BigDecimal 来表示 Java SE 应用程序中的产品价格。

我应该使用什么 swing 组件才能允许用户输入只有两位小数的数字并将其绑定到 BigDecimal 变量/对象的属性。 (在用户键入时检查)?

我一直在玩 JTextField、JFormattedTextField、NumberFormatter、MaskFormatter,但我无法解决。

这些组件是否有任何组合和配置可以做到这一点?或者我应该扩展 MaskFormatter、JTextField……?

I'm using BigDecimal to represent product prices in a Java SE application.

What swing component(s) should I use in order to allow the user to input numbers with only two decimal places and bound it to a BigDecimal variable/Object's property. (Checking that as the user types)?

I've been playing with JTextField, JFormattedTextField, NumberFormatter, MaskFormatter but I can't work it out.

Is there any combination and configuration of those components to do that? or should I extend the MaskFormatter, the JTextField, ...?

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

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

发布评论

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

评论(2

宁愿没拥抱 2024-09-02 07:27:55

我讨厌破坏这些非常旧的线程,但我的理解是 StackOverflow 每天都在内心哭泣,答案仍未解决。

因此您可以在此处查看代码: http://www.java2s.com /Code/Java/Swing-JFC/ABigDecimalobjectcustomformatter.htm

基本上设置为 JFormattedTextField 以使用 DecimalFormat

I hate to necro these really old threads on stuff, but my understanding is StackOverflow cries inside every day an answer remains unsolved.

so you can checkout the code here: http://www.java2s.com/Code/Java/Swing-JFC/ABigDecimalobjectcustomformatter.htm

basically set-up to a JFormattedTextField to use a DecimalFormat

雨落星ぅ辰 2024-09-02 07:27:55

我不太确定你想要做什么,但有一个 BigDecimal 构造函数,它接受字符串作为参数(类似于例如 Double.parseDouble(String s)):

try
{
    BigDecimal decimal = new BigDecimal(yourJTextField.getText());
}
catch (NumberFormatException nfe)
{ /* error handling */}

请参阅 JavaDoc for BigDecimal 了解更多信息。

编辑:如果检查/验证用户在文本字段中的输入,请手动检查或使用验证器(请参阅“JTextField Validator”的 Google 搜索结果

I'm not quite sure what you are trying to do, but there is a BigDecimal constructor which takes Strings as parameter (similar to e.g. Double.parseDouble(String s)):

try
{
    BigDecimal decimal = new BigDecimal(yourJTextField.getText());
}
catch (NumberFormatException nfe)
{ /* error handling */}

See JavaDoc for BigDecimal for more information.

Edit: If checking/validating the user's input into the textfield, either check it manually or use a Validator (see Google results for "JTextField Validator")

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