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).
Wenn Sie sich im "Ressourcenordner hinzufügen" befinden, Erstellungspfad -> Erstellungspfad konfigurieren -> Quelle (Registerkarte) -> Ordner hinzufügen -> Neuen Ordner erstellen
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();
Um Ihre Frage zu beantworten, die im Titel dieses Themas steht ...
Schritt 1 -> Rechtsklick auf Java-Projekt, Wählen Sie die Option "Eigenschaften"
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"
Schritt 3 -> Klicken Sie auf die Option "Neuen Ordner erstellen ..." am unteren Rand des Fensters
Schritt 4 -> Geben Sie den Namen des neuen Ordners als "Ressourcen" ein und klicken Sie auf "Fertig stellen"
Schritt 5 -> Nun können Sie den neu angelegten Ordner "resources" unter Ihrem Java-Projekt sehen. Klicken Sie auf "Ok" und erneut auf "Ok".
Abschließender Schritt -> Jetzt sollten Sie den neuen Ordner "resources" unter Ihrem Java-Projekt sehen können
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();
}
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);