PDA

View Full Version : بازشدن فرم فقط یکبار



Restlesa
شنبه 09 اسفند 1393, 21:05 عصر
سلام بر همگی
برای باز شدن فرم من از دستور زیر استفاده می کنم که در رویداد ActionPerformed دکمه ام نوشته ام
frmAddNumber frmAddNumber = new frmAddNumber();
frmAddNumber.setVisible(true);

مشکلی که دارم اینه که به هر تعداد که روی دکمه کلیک می کنم یک فرم جدید نمایش داده میشه ... چی کار باید بکنم که فقط یکبار فرم ساخته و نمایش داده بشه و در ضمن زمانی که فرم frmAddNumber نمایش داده شد تا زمانی که بسته نشده فرم زیرینش غیر قابل دسترسی باشه ؟؟؟

ممنونتون میشم راهنمایییم کنید
با تشکر

محمد فدوی
شنبه 09 اسفند 1393, 21:50 عصر
سلام.
برای اینکار از کلاس JDialog استفاده کن.

dasssnj
یک شنبه 10 اسفند 1393, 05:20 صبح
برای اینکه چند دفعه باز نشه اول فرم را تعریف کن :

final frmAddNumber frmAddNumber = new frmAddNumber();

و فقط این کد را توی ActionPerformed بزار :


frmAddNumber.setVisible(true);

[younes]
یک شنبه 10 اسفند 1393, 11:28 صبح
میشه لطفا جواب این سوال رو هم بدین؟



ضمن زمانی که فرم frmAddNumber نمایش داده شد تا زمانی که بسته نشده فرم زیرینش غیر قابل دسترسی باشه ؟؟؟

محمد فدوی
یک شنبه 10 اسفند 1393, 12:01 عصر
جواب سوال رو دادم. اگه یه کم در مورد JDialog گوگل می‌کردی به نتیجه می‌رسیدی.
به جای اینکه فریمت رو از کلاس JFrame بسازی از JDialog بساز. مثلا:

JDialog dlg = new JDialog(ownerFrame, "I'm a Dialog", ModalityType.APPLICATION_MODAL);
dlg.setVisible(true);


حالا تا وقتی که این دیالوگ بسته نشه فریم والد (ownerFrame) غیرقابل‌دسترسیه.
* پارامتر سومی که به سازنده‌ی JDialog ارسال می‌شه تعیین میکنه که تا چه سطحی از برنامه موقع باز شدن این دیالوگ باید فریز بشن. معمولا APPLICATION_MODAL کار رو راه می‌ندازه. بیشتر بخون (http://stackoverflow.com/questions/14332196/jdialog-modal-true-vs-modalitytype-application-modal).

دیگه وقتی از JDialog استفاده می‌کنی نگران این نیستی که همزمان دوبار دیالوگت باز بشه چون فریم والدش فریز می‌شه.
موفق باشی.