it-swarm.com.de

Wie füge ich meinem Java-Projekt in Eclipse einen Ressourcenordner hinzu?

Ich möchte einen Ort zum Speichern meiner Bilddateien zur Verwendung in meinem Java-Projekt (eine wirklich einfache Klasse, die ein Bild in ein Bedienfeld lädt). Ich habe überall gesucht und kann nicht finden, wie das geht. Wie mache ich das?

Ich habe versucht, einen neuen Ordner zum Projekt hinzuzufügen, einen neuen Klassenordner zum Projekt und einen neuen Quellordner zum Projekt. Egal was ich mache, ich bekomme immer eine IOException. Die Ordner sagen immer, dass sie sich im Erstellungspfad befinden, daher bin ich nicht sicher, was ich tun soll.

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);


}


}

BEARBEITEN: Etwas, das für mich funktionierte, und ich habe keine Ahnung warum, fügte den main/res/-Ordner als Klassenordner hinzu und entfernte ihn dann. Ich habe es ausgeführt, während /main/res/ als Klassenordner Teil des Erstellungspfads war und es trotzdem nicht funktionierte. Als ich es hinzufügte, bekam ich ein Popup, das mir etwas über ausgeschlossene Filter verriet. Aber als ich den Ordner aus den Bibliotheken im Erstellungspfad entfernt habe, habe ich meinen Dateipfad geändert in:

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

Ich habe zumindest aufgehört, die IOException zu werfen. Ich muss das Bild nicht korrekt zum Panel hinzufügen, da es nicht angezeigt wird, aber zumindest die Datei gefunden hat (denke ich).

33
redeagle47

Wenn Sie sich im "Ressourcenordner hinzufügen" befinden, Erstellungspfad -> Erstellungspfad konfigurieren -> Quelle (Registerkarte) -> Ordner hinzufügen -> Neuen Ordner erstellen enter image description here

fügen Sie die Datei "my-resource.txt" in den neuen Ordner ..__ ein. Dann in Ihrem Code:

    InputStream res =
    Main.class.getResourceAsStream("/my-resource.txt");

    BufferedReader reader =
        new BufferedReader(new InputStreamReader(res));
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
    reader.close();
62
Lautaro Cozzani

Um Ihre Frage zu beantworten, die im Titel dieses Themas steht ... 

Schritt 1 -> Rechtsklick auf Java-Projekt, Wählen Sie die Option "Eigenschaften"  Step 1--> Right Click on Java Project, Select the option "Properties"

Schritt 2 -> Wählen Sie "Java Build Path" aus dem Menü auf der linken Seite. Stellen Sie sicher, dass Sie sich auf der Registerkarte "Quelle" befinden, und klicken Sie auf "Ordner hinzufügen"  Select "Java Build Path" from the left side menu, make sure you are on "Source" tab, click "Add Folder"

Schritt 3 -> Klicken Sie auf die Option "Neuen Ordner erstellen ..." am unteren Rand des Fensters  Click the option "Create New Folder..." available at the bottom of the window

Schritt 4 -> Geben Sie den Namen des neuen Ordners als "Ressourcen" ein und klicken Sie auf "Fertig stellen"  Enter the name of the new folder as "resources" and then click "Finish"

Schritt 5 -> Nun können Sie den neu angelegten Ordner "resources" unter Ihrem Java-Projekt sehen. Klicken Sie auf "Ok" und erneut auf "Ok".
 Now you'll be able to see the newly created folder "resources" under your Java project, Click "Ok", again Click "Ok"

Abschließender Schritt -> Jetzt sollten Sie den neuen Ordner "resources" unter Ihrem Java-Projekt sehen können
 Now you should be able to see the new folder "resources" under your Java project

10
mannedear

Nachdem Sie einen Ressourcenordner hinzugefügt haben, versuchen Sie Folgendes:

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

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

Versuchen Sie, den vollständigen Pfad zum Lesen des Bildes anzugeben.

Beispiel image = ImageIO.read (neue Datei ("D: /work1/Jan14Stackoverflow/src/Strawberry.jpg")));

ihr Code erzeugt keine Ausnahme, nachdem Sie den vollständigen Pfad angegeben haben. Wenn Sie eine Image-Datei im Java-Code lesen möchten, lesen Sie die folgenden Anweisungen: - http://docs.Oracle.com/javase/ Tutorial/2d/images/beispiele/LoadImageApp.Java

Wenn das Objekt Ihrer Klasse am Ende erstellt wird, funktioniert Ihr Code gut für mich und zeigt das Bild an

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

new PracticeFrame().add(panel);
0
jones j alapat