【问题标题】:How to validate five TextField when the value is greater than zero?当值大于零时如何验证五个TextField?
【发布时间】:2019-06-08 11:14:56
【问题描述】:

我说西班牙语不是英语,我正在使用谷歌翻译。

我有一个 .FXML 表单,其中包含许多 TextField 和一个按钮,用于单击并使用 TextField 中输入的每个值执行数学运算。 我创建了一个获取文本字段值并执行数学运算的方法。

但如果任何文本字段的值发生了更改,则必须通过单击按钮重新计算。 我需要在任何TextField中按下回车键时,自动执行数学运算的方法,但是我不想在每个文本字段中使用keyPressed方法,这将是一个很长的代码,为每个TextField调用keyPressed方法.

我正在考虑创建一个侦听器或一种 Binding,用于连接所有文本字段,或者当文本字段发生更改或输入的值大于零时检测到。

textField.textProperty().addListener...

该方法有效,但我有很多 TextField,我必须多次重复该代码。我不想那样做。

txt1..textProperty().addListener...
txt2..textProperty().addListener...
txt3..textProperty().addListener...
txt4..textProperty().addListener...
txt5..textProperty().addListener...
...
...

BooleanBinding bd = Binding.(txt1.textProp..., txt2textProp..., txt3.... ???

有可能吗?

enter image description here

【问题讨论】:

  • 欢迎来到 SO!您确实需要更多地澄清您的问题,并努力帮助我们帮助您。请使用tour 并阅读How to Ask 文章寻求帮助。
  • @Hulk 谢谢,但我没用。我编辑了问题。请再读一遍。
  • @Zephyr 我编辑了问题。请再读一遍
  • 你可以创建一个监听器并在你所有的TextFields上重用它

标签: java javafx binding


【解决方案1】:
EventHandler<KeyEvent> teclaPresionada = (event) -> {
// Colocar todo el codigo aca
};

campo1.addEventHandler(KeyEvent.KEY_PRESSED, teclaPresionada);
campo2.addEventHandler(KeyEvent.KEY_PRESSED, teclaPresionada);
campo3.addEventHandler(KeyEvent.KEY_PRESSED, teclaPresionada);
campo4.addEventHandler(KeyEvent.KEY_PRESSED, teclaPresionada);  
campo5.addEventHandler(KeyEvent.KEY_PRESSED, teclaPresionada);

【讨论】:

    猜你喜欢
    • 2020-03-10
    • 1970-01-01
    • 2010-11-13
    • 2013-12-07
    • 2014-06-12
    • 1970-01-01
    • 2021-08-30
    • 2023-01-21
    相关资源
    最近更新 更多