مشاكل إعادة رسم Java JPanel
سؤال
لدي تطبيق Java البديل مع لوحة تحتوي على ثلاثة JComboBoxe
التي لا ترسم بشكل صحيح.
تظهر مربعات التحرير والسرد على شكل سهم لأسفل على الجانب الأيمن، ولكن بدون تسمية القيمة المحددة حاليًا.
سيتم إعادة رسم المربعات بشكل صحيح إذا تم تغيير حجم النافذة إما أكبر أو أصغر بمقدار بكسل واحد.
لقد أشار كل بحثي على Google إلى الاتصال revalidate()
على ال JPanel
لإصلاح هذا، ولكن هذا لم ينجح بالنسبة لي.
الاتصال updateUI()
على ال JPanel
لقد غيرته من العرض دائمًا بشكل غير صحيح إلى العرض بشكل غير صحيح نصف الوقت.
هل رأى أي شخص آخر هذا ووجد طريقة مختلفة لفرض إعادة رسم مربعات التحرير والسرد؟
المحلول
هل يمكنك أن تقدم لنا المزيد من المعلومات حول كيفية إضافة مربعات التحرير والسرد إلى لوحة JPanel؟يعد هذا أمرًا شائعًا جدًا في Swing، لذا أشك في أنها مشكلة في JVM ولكن أعتقد أن كل شيء ممكن.
على وجه التحديد، أود التحقق مرة أخرى للتأكد من عدم وصولك إلى واجهة المستخدم الرسومية من أي مؤشرات ترابط في الخلفية.في هذه الحالة، ربما كنت تقرأ الاختيارات من قاعدة بيانات أو شيء من هذا القبيل وتقوم بتحديث JComboBox من سلسلة رسائل في الخلفية، وهو أمر محظور في Swing.راجع SwingUtils.invocLater().