سؤال

لقد أضفت صورة فوتوغرافية لزر My، ولكن عندما أقوم بتشغيل هذا الإطار، سيتم إلقاء هذا الاستثناء. لماذا تساعدني.

init:

deps-jar:
compile-single:
run-single:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(ImageIcon.java:138)
        at ClientGUI.IdAndPasswordFrame.initComponents(IdAndPasswordFrame.java:91)
        at ClientGUI.IdAndPasswordFrame.<init>(IdAndPasswordFrame.java:22)
        at ClientGUI.IdAndPasswordFrame$4.run(IdAndPasswordFrame.java:200)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
BUILD SUCCESSFUL (total time: 1 second)

خط 138:

public ImageIcon (URL location) {
    this(location, location.toExternalForm());
}

line91:

 jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/yahoo_1.gif"))); // NOI18N

يمكنني استخدام هذا الفحص السيئ (Peter Lang الموصى به) وهو: System.Out.Println (GetClass (). GetResource ("/ images / yahoo_1.gif")؛ ويعود فارغة، لماذا؟ الرجاء مساعدتي.

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

المحلول

هذا يعني ذاك getClass().getResource("/Images/yahoo_1.gif") عائدات null.

جافادوك تنص على أن هذا يحدث إذا

لا يمكن العثور على المورد أو لا يحتوي المدافع على امتيازات كافية للحصول على المورد.

  1. تحقق فيما لو getResource عودة حقا null:
    System.out.println(getClass().getResource("/Images/yahoo_1.gif"));

  2. تأكد من صحة المسار الخاص بك وأنه في ClassPath الخاص بك.

تعديل:

لقد جربتها فقط مع Netbeans. لقد أنشأت الهيكل التالي

Source Packages
  Images
    yahoo_1.gif

وعمل الكود الخاص بك على ما يرام. هل هذا هيكلك؟

حاول النقر بزر الماوس الأيمن فوق التطبيق الخاص بك وحدد Clean and Build.

نصائح أخرى

من أجل إصلاح هذا، تحتاج الصور إلى نسخها في سلة مهملات دليل - ليس في SRC. الدليل.

وإلا سوف تحصل بليغ طوال الوقت getclass (). GetResource ("image.png"). وبعد الطريق غير فارغة ويمكنك تعيينه على النحو الوارد أعلاه - فقط إذا قمت بنسخ الصور التي تحتاجها داخل الدليل الثنائي، حيث توجد ملفات .class لمشروعك.

هذا ثابت المشكلة. اسمحوا لي أن أعرف إذا ساعدت في هذا.

ioana.

يبدو وكأنه getClass().getResource("/Images/yahoo_1.gif") عائدات null أي أن .gif لا يمكن العثور عليها على classpath الخاص بك. (الصور مقابل الصور ربما؟)

عنوان URL الذي يتم تمريره هو فارغ من هذا الخط:

getClass().getResource("/Images/yahoo_1.gif")

من وثائق JDK:

GetResource (..) إرجاع] كائن URL لقراءة المورد، أو NULL إذا تعذر العثور على المورد أو لا يحتوي المدفوعات على امتيازات كافية للحصول على المورد

ربما تعني ("صور / Yahoo_1.gif") - أي المسار النسبي ليس مطلقا؟

كان لي نفس المشكلة. ما كان يعمل بالنسبة لي كان:

  1. ابحث في ملف JAR أو في مجلد BIN (واحد مع ملفات .class) وشاهد مسار الصورة.
  2. قائمة الاغراض
private class HandlerClass implements ActionListener{
        public void actionperformed(ActionEvent event){
            JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand()));
        }

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