我是javaFX的新手。我使用fxml创建了一个注册表单。现在我想实现字段验证功能。我正在尝试实现TextField的验证,但我仍然没有得到它。请任何人帮助我。
感谢 Naresh
答案 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