【发布时间】:2016-05-06 01:38:38
【问题描述】:
我有一个文本字段,用户可以在其中输入值。
在它的监听器中,我将新值存储到一个变量中。如果该变量是一个数字,那么我将继续打印该数字。示例:
String val="";
textfield.textProperty().addListener(new ChangeListener<String>() {
public void changed(ObservableValue<? extends String> ov,
String old_val, String new_val) {
val=new_val;
if(val.matches("\\d+")) {
System.out.println(val);
}
}
}
问题是当我尝试输入一个多位数的数字时。如果我尝试10,它将在1 处切断它,因为1 是我输入的第一个数字,它触发了if。
打印完值后,它会被发送到程序的其余部分,不再需要用户输入。但是用户应该如何输入两位数字呢?我试过让线程睡觉,但它让一切都睡着了。我尝试为数字<10 添加过滤器,以便它们等待可能的第二个数字,但我无法等待。它总是在第一个数字处被切断。
有什么建议可以试试?
【问题讨论】:
标签: java validation input