2016-04-02 32 views
0

我想实现数据验证了我的程序:更具体的JavaFX的数据验证

private boolean typeVal (TextField typeInput, String typeMessage){ 
    try { 
     String type = (typeInput.getText()); 
     addButtonClicked(); 
     return true; 
    }catch(NumberFormatException e) { 
     AlertBox.display("Datatype Error", "Please check all fields are entered and are using correct datatypes"); 
     return false; 
    } 
} 

这是我想创建验证程序的一个例子,这个问题当有人进入一串数字来。无论如何要让这个更具体到某些字符?

回答

1

JavaFX中没有标准的验证器。但是有几个JavaFX库提供这样的功能,而且它们都不包含简单的密码验证程序。所以我不得不通过myself来实现验证器。

你的代码不太好。您在某些功能中添加了点击监听器。您应该在FXML控制器的initialize()函数中添加监听器。而且当文本为空,则应该禁用按钮:

button.disableProperty().bind(textField.textProperty().isEmpty()); 
+0

有[的TextFormatter](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextFormatter.html ),但目前它的行为与Swing的[COMMIT_OR_REVERT](https://docs.oracle.com/javase/8/docs/api/javax/swing/JFormattedTextField.html#COMMIT_OR_REVERT)类似:无效的输入被默默丢弃,最后一个价值恢复。 – VGR

+1

您的链接已损坏,您是否移动了存储库? – MikaelF

+0

感谢您的评论,我用正确的链接更新了我的答案。我只是做了一些重构,打破了原来的链接。 –