سؤال

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

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

شكرا على أي نصيحة يمكنك أن تعطيني هنا.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Controller.paint(Controller.java:156)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknow
n Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Controller.paint(Controller.java:156)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknow
n Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
هل كانت مفيدة؟

المحلول

أقترح عليك أن تبدأ بقراءة تعليمي التأرجح.يحتوي على قسم يشرح كيفية عمل الرسم.لسبب واحد، يجب عليك تجاوز طريقة PaintComponent().من الخطأ أعلاه يبدو أن الكود الخاص بك موجود في طريقة الطلاء ().

لتتعلم شيئًا ما، يجب أن تبدأ صغيرًا، ثم عندما تواجه مشكلات، يمكنك نشر رسالة SSCCE تظهر المشكلة.

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