ユーザーが値を入力できるテキストフィールドがあります。ユーザー入力が途切れている
リスナーでは、新しい値を変数に格納します。その変数が数値であれば、その数値を出力します。例:
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
をトリガーしました。
私が値を印刷した後、それは残りのプログラムに送られ、ユーザー入力はもはや必要ありません。しかし、ユーザーはどのように2桁の数字を入力するのですか?私はスレッドをスリープ状態にしようとしましたが、すべてをスリープ状態にします。私は数字<10
のためにフィルターを追加しようとしましたが、可能な2桁目を待つようになっていますが、待つことはできません。それは常に最初の桁で切り捨てられています。
お試しください。
まだ2桁だけではなく、1桁の入力が必要なので、問題はまだ発生します。 –