java - تعلم - برامج جاهزة بلغة الجافا



كيف أقوم بإضافة مجلد موارد إلى مشروع جافا الخاص بي في Eclipse (3)

بعد إضافة مجلد مورد ، حاول القيام بما يلي:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("test.png");

try {
    image = ImageIO.read(input);
} catch (IOException e) {
    e.printStackTrace();
}

https://ffff65535.com

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

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

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class PracticeFrame extends JFrame{

private static BufferedImage image;
Thread thread;

public PracticeFrame() {
    super();
    setPreferredSize(new Dimension(640,480));
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setVisible(true);
}

public static void main (String[] args) {
    PracticeFrame pframe = new PracticeFrame();
    try {
        image = ImageIO.read(new File("/islands.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }

    JPanel panel = new JPanel() {
        @Override
        protected void  paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(image,0,0,null);
        }
    };

    panel.setBackground(Color.BLUE);
    panel.repaint();
    pframe.add(panel);


}


}

تحرير: شيء ما عمل بالنسبة لي ، وليس لدي أي فكرة عن السبب ، كان إضافة المجلد main/res/ كمجلد الفصل ثم إزالته. قمت بتشغيله بينما كان /main/res/ جزءًا من مسار الإنشاء كمجلد فصل ولم يفلح. عندما أضفتها ، حصلت على نافذة منبثقة أخبرتني عن فلاتر مستثناة. ولكن عندما أزلت المجلد من المكتبات في مسار الإنشاء ، وغيرت مسار الملف إلى:

image = ImageIO.read(new File("src/main/res/islands.png"));

أنا على الأقل توقفت عن الحصول على IOException القيت. يجب ألا أقوم بإضافة الصورة إلى اللوحة بشكل صحيح ، لأنها لا تظهر ، ولكن على الأقل وجدت الملف (على ما أظن).


حاول إعطاء المسار الكامل لقراءة الصورة.

مثال للصورة = ImageIO.read (ملف جديد ("D: /work1/Jan14/src/Strawberry.jpg"))؛

لا تنتج شفرتك أي استثناء بعد إعطاء المسار الكامل. إذا كنت تريد فقط قراءة ملف صورة في شفرة جافا. راجع ما يلي - http://docs.oracle.com/javase/tutorial/2d/images/examples/LoadImageApp.java

إذا تم إنشاء كائن فصلك في النهاية يعمل رمزك جيدًا لي ويعرض الصورة

// PracticeFrame pframe = new PracticeFrame();//comment this

new PracticeFrame().add(panel);

للإجابة على سؤالك المنشور في عنوان هذا الموضوع ...

الخطوة 1 -> انقر بالزر الأيمن على مشروع جافا ، حدد الخيار "خصائص"

الخطوة 2 -> حدد "Java Build Path" من القائمة الجانبية اليسرى ، تأكد من أنك في علامة التبويب "المصدر" ، انقر على "إضافة مجلد"

الخطوة 3 -> انقر فوق الخيار "إنشاء مجلد جديد ..." متاح في الجزء السفلي من النافذة

الخطوة 4 -> أدخل اسم المجلد الجديد باسم "الموارد" ، ثم انقر فوق "إنهاء"

الخطوة 5 -> الآن ستتمكن من رؤية "الموارد" التي تم إنشاؤها حديثا مجلد تحت مشروع جافا الخاص بك ، انقر فوق "موافق" ، مرة أخرى انقر فوق "موافق"

الخطوة النهائية -> الآن يجب أن تكون قادرا على رؤية "الموارد" المجلد الجديد تحت مشروع جافا الخاص بك





project-organization