سؤال

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

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

هتافات.

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

المحلول

تحتاج إلى أ JDialog مع modal = true. وبعد من الجافادوك:

modal - يحدد ما إذا كتل مربع الحوار إدخال المستخدم إلى Windows المستوى الأعلى غير المعروض عند إظهاره.

نصائح أخرى

فقط تغيير JFrame إلى أ JDialog.

ثم في المنشئ استخدام هذا الخط:

setModal(true);

سيتم حظر التطبيق الخاص بك حتى يتم إغلاق مربع الحوار.

قد ترغب في النظر إلى JOptionPane.showInputDialog() إذا كان المستخدمون يدخلون ببساطة String.

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