سؤال

كيف يمكنني تجنب هذا الحوار هو مبين ، عندما يكون هناك بالفعل واحدة على الشاشة ؟

التفاصيل:في تطبيق العديد من تشغيل أجهزة ضبط الوقت.في حالة حدوث خطأ فادح, جميع المتضررين المواضيع سوف تظهر JDialog (قبل swingx.JXErrorPane.showDialog ()) ، الذي ليس هو المطلوب.حتى إذا قمت بإلغاء كل تشغيل أجهزة ضبط الوقت, لا يزال بعض الحوارات سوف تظهر في نفس الوقت.كيف يمكنني تحقيق ذلك لا تظهر إلا واحد الحوار ؟

حاولت أن تجعل الأسلوب الذي يدعو showDialog() متزامنة ، مما يؤدي في حياتي واجهة المستخدم الرسومية حجبها.استخدام العلم لم ينجح أيضا.

هل كانت مفيدة؟

المحلول

وبدوره الحوار إلى مراقب ونشر الأحداث الخطأ إلى هذا المراقب الجديد (انظر تصميم المراقب نمط ). عندما يحدث هذا الحدث، ينبغي أن الحوار تظهر نفسها (مع الإطار الرئيسي ك الأصل). عرض الأخطاء الأخيرة في جدول في مربع الحوار. إضافة أخطاء جديدة في الجزء السفلي من هذا الجدول.

وثمة خيار آخر هو لعرض الأخطاء في جدول في الإطار الرئيسي. وضع الجدول الى JSplitPane بحيث يمكن للمستخدمين تقليل ذلك.

نصائح أخرى

آخر خيار تحويل الحوار إلى المفرد:

  • تعطي حوار خاص منشئ.
  • إنشاء "خاص ثابت MyDialog سبيل المثال ؛" السمة في فئة الحوار.
  • إنشاء "الجمهور ثابت MyDialog getInstance() { ...};- طريقة للعودة إلى الدرجة الأولى مثيل إذا كانت فارغة.

حيث MyDialog يجب أن يكون اسم نافذة الحوار الدرجة.

ثم في كل مرة كنت في حاجة لإظهار مربع الحوار يمكنك ببساطة الرجوع إلى المفرد:

MyDialog.getInstance().showDialog();

حيث showDialog فقط يجعل الحوار نافذة مرئية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top