javaFX - 字段验证

时间:2013-09-16 10:10:49

标签: javafx fxml

我是javaFX的新手。我使用fxml创建了一个注册表单。现在我想实现字段验证功能。我正在尝试实现TextField的验证,但我仍然没有得到它。请任何人帮助我。

感谢 Naresh

4 个答案:

答案 0 :(得分:2)

不幸的是,JavaFX中没有验证框架。即使像Granite Data Services这样的框架也存在使用JavaFX进行bean验证的麻烦:http://granitedataservices.com/blog/2012/11/29/thoughts-about-javafx-and-bean-validation/

如果您对使用JavaFX进行bean验证感兴趣,Granite会使用启用了bean验证的JavaFX属性字段生成java bean(验证绑定到javafx组件的java bean)。它可以是一个很好的解决方案,也可以为您的问题提供良好的灵感。

答案 1 :(得分:0)

正如@zenbeni指出的那样,没有自动验证,但您可以使用事件处理程序实现自己的验证。您希望如何实现它将决定您选择实现哪个事件处理程序。它们的复杂程度非常高。以下是其他人尝试创建完全验证的文本字段组件:JavaFX 2.2 FXML Validated TextField

使用此处描述的setOnAction处理程序http://docs.oracle.com/javafx/2/api/javafx/scene/control/TextField.html#setOnAction(javafx.event.EventHandler),您可以轻松实现更简单的实现,但如果您要多次执行此操作,则需要更完整的内容,如上面的实现。

答案 2 :(得分:0)

我的建议是使用JideFX进行字段验证以及日历和弹出窗口等其他特殊控件。

请访问www.jidesoft.com

答案 3 :(得分:0)

您可以验证失去对控件的关注。这是一种非常常见的跨平台方法......

textField.focusedProperty().addListener((observable, oldValue, newValue) ->
{
   if(textField.isFocused() == false)
   {
      LOGGER.debug("Validate on lost focus here...");
   }
});

JavaFX 8