با سلام، بنده برای جداسازی اعداد به صورت سه تایی صدگان کد زیر را نوشته ام. می خواهم برای یک ورودی متن با عنوان مبلغ، کاربر هنگام وارد کردن مبلغ، جداسازی شود و ویرگول به میان اعداد سه تایی اضافه شود.
این کار را NumberFormat انجام می دهد. برای وارد کردن عدد تا 9 - 10 تایی به خوبی کار می کند فقط مشکلی که هست وقتی از آن عدد وارد شده چیزی را پاک می کنی (Backspace را می زنی)، پیغام خطا می دهد:
txt_value.textProperty().addListener((observable, oldValue, newValue) -> {
NumberFormat nf = NumberFormat.getInstance();
if(!txt_value.getText().isEmpty() && txt_value.getText().replace(",", "").matches("\d{0,9}"))
txt_value.setText(nf.format(Integer.parseInt(txt_v alue.getText().replace(",", ""))));
});
موقع پاک کردن خطای زیر را می دهد:
java.lang.IllegalArgumentException: The start must be <= the end
آیا کسی راه حلی داره برای خلاصی از این خطا. ممنونم
برچسب:
نویسنده: محمد رضا جوادیان