textField.focusedProperty().addListener((arg0, oldValue, newValue) -> { if (!newValue) { //when focus lost if(!textField.getText().matches("[1-5]\.[0-9]|6\.0")){ //when it not matches the pattern (1.0 - 6.0) //set the textField empty textField.setText(""); } } });
您还可以将模式更改为,
[1-5](.[0-9]){0,1}|6(.0){0,1}然后
1,2,3,4,5,6也可以(不仅是
1.0,2.0,...)
更新 这是一个小型测试应用程序,允许使用值1(.00)至6(.00):
public class JavaFxSample extends Application {@Overridepublic void start(Stage primaryStage) { primaryStage.setTitle("Enter number and hit the button"); GridPane grid = new GridPane(); grid.setAlignment(Pos.CENTER); Label label1To6 = new Label("1.0-6.0:"); grid.add(label1To6, 0, 1); TextField textField1To6 = new TextField(); textField1To6.focusedProperty().addListener((arg0, oldValue, newValue) -> { if (!newValue) { // when focus lost if (!textField1To6.getText().matches("[1-5](\.[0-9]{1,2}){0,1}|6(\.0{1,2}){0,1}")) { // when it not matches the pattern (1.0 - 6.0) // set the textField empty textField1To6.setText(""); } } }); grid.add(textField1To6, 1, 1); grid.add(new Button("Hit me!"), 2, 1); Scene scene = new Scene(grid, 300, 275); primaryStage.setScene(scene); primaryStage.show();}public static void main(String[] args) { launch(args);}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)