【问题标题】:TextField listener for after the user finished editing? JavaFX用户完成编辑后的 ​​TextField 监听器? JavaFX
【发布时间】:2017-04-27 12:44:37
【问题描述】:

我尝试了不同的方法,但都没有奏效。先解释一下:

表格图片(gridview):

  1. 我有一个 Table aka(具体为 GridView),我用 TextFields 填充。
  2. 右上三角可以编辑,下三角不能。
  3. 如果用户输入 1-9,则镜像字段的值为 1/(1-9)
  4. 用户还可以写入 1/(1-9),镜像字段的值是 1-9(不管输入是 1/9 还是实际数字,0.1111)

第三点很简单,我只是使用 changeListener 获取了两个文本字段并更改了值。 (简单的正则表达式:^[1-9])。这已经完成了。

我尝试使用正则表达式检查是否以 1 开头然后 1/ 然后 1/(2-9) 进行 if 语句,但是它得到了很多错误(看起来像这样的错误 =>,我不记得描述),它过于复杂,以后会引起问题。我也试过用户可以输入小数 0.1111=9 也是同样的问题。

是否有一个我可以使用的监听器,它在用户完成时启动(输入是完整的)。或者你会如何解决这个问题?

【问题讨论】:

  • 问题不应该是:如何知道用户是否完成编辑?之后你就很容易处理他写的东西了。
  • 对了,有没有办法让我知道他什么时候结束。或有关如何解决此问题的任何其他想法。
  • 您可以使用延迟,或在每个键入的字符之间使用间隔,如果延迟已过,您可以调用您的方法!
  • 你也可以用key或者indication来告诉程序停止编辑并启动方法(键盘键/后缀/前缀),否则我认为程序不是很聪明的一个人猜!

标签: java javafx


【解决方案1】:

这应该可行:

field.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        // what happens after Enter is pressed
    }
});

【讨论】:

    【解决方案2】:

    两种常见的(但不是唯一的)解决方案是:

    1) 让用户在完成字段编辑后按下回车键。然后,您可以根据该按键运行验证功能。 (see here)

    2) 当字段失去焦点时运行验证。 (see here)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-22
    • 2020-07-11
    • 2020-06-14
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    相关资源
    最近更新 更多