mostafabahrami
چهارشنبه 20 دی 1391, 23:09 عصر
سلام دوستان. یه مشکل کوچولو در مورد کار با JFormattedText باهاش مواجه شدم. اگه راهنمایی کنین ممنون میشم.
من چند تا از کامپوننت JFormattedText توی یه فرم (JFrame) دارم که خاصیت fomatfactory هر کدوم رو طبق چیزی که خواستم تنظیم کردم. مثلا یکی فقط عدد میگیره یکیش فقط تاریخ با فرمت دلخواه من و الی آخر. تا اینجا هیچ مشکلی نیست. من یه دکمه ثبت اطلاعات گذاشتم که بعد از خوندن مقدار این JFormattedTextهای روی فرم و ذخیره مقادیرش (مثلا تو یه آرایه یا فایل یا هر چی خیلی مهم نیست) این کامپوننتها رو خالی میکنه با فراخوانی متد setText با رشته "" یا مقدار null. تا اینجا هم مشکل خاصی نیست. یعنی همه چیز کار میکنه دیتام ذخیره میشه و کامپوننتها هم خالی میشن. اما مشکل اینجاست که این JFormattedText ها واقعا خالی نشدن. چون وقتی روی هر کدوم از JFormattedText ها که کلیک می کنم و از اون خارج میشم با مقدار قبل از پاک شدنش دوباره پر میشه یعنی اگه بعد از زدن دکمه ثبت و خالی شدن همه JFormattedText ها با ماوس روی تک تک JFormattedText ها فقط کلیک کنم و هیچی توش تایپ نکنم همشون با آخرین مقدار ثبت شده پر میشن که اصلا چیز جالبی نیست(برای کاربر). البته دلیلش خیلی تابلوئه . اونم اینه که اگه مقداری که توی یه JFormattedText وارد میشه طبق فرمت تعریف شدش نباشه موقع lost focus شدن cursor، توی JFormattedText قرار نمیگیره و همون مقدار قبلیش توش می مونه اصلا اساس کار و هدف JFormattedText هم همینه و دلیل خالی شدن کل اونها بعد از زدن دکمه اینه که چون از طریق کد انجام شده . میخاستم ببینم راه حلی وجود داره که این اتفاق نیفته؟؟
من چند تا از کامپوننت JFormattedText توی یه فرم (JFrame) دارم که خاصیت fomatfactory هر کدوم رو طبق چیزی که خواستم تنظیم کردم. مثلا یکی فقط عدد میگیره یکیش فقط تاریخ با فرمت دلخواه من و الی آخر. تا اینجا هیچ مشکلی نیست. من یه دکمه ثبت اطلاعات گذاشتم که بعد از خوندن مقدار این JFormattedTextهای روی فرم و ذخیره مقادیرش (مثلا تو یه آرایه یا فایل یا هر چی خیلی مهم نیست) این کامپوننتها رو خالی میکنه با فراخوانی متد setText با رشته "" یا مقدار null. تا اینجا هم مشکل خاصی نیست. یعنی همه چیز کار میکنه دیتام ذخیره میشه و کامپوننتها هم خالی میشن. اما مشکل اینجاست که این JFormattedText ها واقعا خالی نشدن. چون وقتی روی هر کدوم از JFormattedText ها که کلیک می کنم و از اون خارج میشم با مقدار قبل از پاک شدنش دوباره پر میشه یعنی اگه بعد از زدن دکمه ثبت و خالی شدن همه JFormattedText ها با ماوس روی تک تک JFormattedText ها فقط کلیک کنم و هیچی توش تایپ نکنم همشون با آخرین مقدار ثبت شده پر میشن که اصلا چیز جالبی نیست(برای کاربر). البته دلیلش خیلی تابلوئه . اونم اینه که اگه مقداری که توی یه JFormattedText وارد میشه طبق فرمت تعریف شدش نباشه موقع lost focus شدن cursor، توی JFormattedText قرار نمیگیره و همون مقدار قبلیش توش می مونه اصلا اساس کار و هدف JFormattedText هم همینه و دلیل خالی شدن کل اونها بعد از زدن دکمه اینه که چون از طریق کد انجام شده . میخاستم ببینم راه حلی وجود داره که این اتفاق نیفته؟؟