【问题标题】:Textfield JavaFX with dynamic mask for monetary values具有货币值动态掩码的文本字段 JavaFX
【发布时间】:2018-09-22 00:46:09
【问题描述】:

我正在尝试为金融应用程序创建一个文本字段 Java FX。我希望这个 texfield 遵循与 ATM 中的数字字段相同的模式。例如:在 ATM 中,值字段中的初始值为“0.00”。当用户键入他要提取的值时,例如从右到左键入,替换前导零……例如我要提取$ 99.90(用户键入3次9键和1次0键) 碰巧:

0.09 -> 0.99 -> 9.99 -> 99.90

有人知道如何制作这个面具吗?

我已经看到了几个关于类似主题的答案,但我无法将它们中的任何一个调整到我的项目中(可能是因为我是 Java 的初学者,并且我仍在学习 String 类、文本字段方法等)

提前感谢您的关注。

P.S .: 我的英语还不是很流利,所以如果这条消息有任何语法错误,那是因为我曾经写过的谷歌翻译

【问题讨论】:

  • 我认为制作自己的控件来监听关键事件会更容易,并且您可以执行自己的逻辑。
  • 确实如此。理想的情况是让我自己控制。但是,我是从 Java 编程世界开始的。这样就需要学习第三方代码来理解Java语法和自主开发自己的逻辑。所以我期待一个例子来解决这个问题

标签: java user-interface javafx textfield currency


【解决方案1】:

基本算法如下(伪代码):

float value = 0; // The initial value is 0

// On Input
void input( int digit ){ // This is invoked when the user presses a digit on the keyboard
    // You multiply the current value by ten and add the new digit
    value *= 10;
    value += digit * 0.01;
}

9990 输入的步骤如下:

1: (0.00 * 10) + (9 * 0.01) = 0.09
2: (0.09 * 10) + (9 * 0.01) = 0.99
3: (0.99 * 10) + (9 * 0.01) = 9.99
4: (9.99 * 10) + (0 * 0.01) = 99.90

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多