我正在使用JavaFX编写程序,目前有三个TextField。当任何文本字段都处于焦点状态时按Enter键时,将有一个EventHandler,它为每个字段调用适当的方法。没有提交按钮,因为我希望它分别提交每个输入(这就是我制作程序其余部分的方式)以进行验证,并返回一个包含输入错误的字符串。如果用户输入无效,它将重置为它具有的最后一个有效值。
但是,在测试时,我发现有时我只是单击其他地方(例如下一个字段),而不是按Enter,所以我想实现与按Enter相同的功能,但是当用户在字段外单击时。我尝试在根目录上有一个MouseClicked事件,试图使它立即提交所有字段的输入,但是如果没有填写任何字段,那么它将失败并返回错误消息(这可能会使用户感到困惑)。
此外,如果用户再次在TextField中单击,说要从单词的中间删除某些内容,则将触发事件,如果当前输入无效,则该字段将重置为最后一个有效值。
>我已经考虑过在每个字段上使用MouseExited事件,但是我认为这可能是因为光标离开该字段而不是在该字段之外单击而触发的。
在最小化程序中事件方法的数量的同时,这样做有什么好方法?