में एक छवि पढ़ना मेरे पास मेरी परियोजना में एक छवि फ़ाइल है। पदानुक्रम इस तरह दिखता है:नेटबीन्स
मैं इस कोड का उपयोग Manling.java में Manling.png को पढ़ने के लिए कोशिश कर रहा हूँ:
public BufferedImage sprite;
public Manling()
{
try
{
File file = new File("resources/Manling.png");
sprite = ImageIO.read(file);
} catch (IOException e) {}
System.out.println(sprite.toString()); //This line is to test if it works
}
मैं हमेशा println
विवरण पर एक NullPointerException
मिलता है, तो मुझे लगता है कि रास्ता गलत है। मैंने प्रोजेक्ट में छवि को विभिन्न स्थानों पर ले जाने का प्रयास किया है और मैंने फ़ाइल पथ को बदलने की कोशिश की है (उदा। 'मेरा/संसाधन/मैनलिंग.png' और '/resources/Manling.png')। कोई विचार?
आप एक पूर्ण compilable उदाहरण चाहते हैं, कोशिश यह एक:
package minesscce;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import java.net.URL;
public class Mine extends JFrame
{
private BufferedImage sprite;
public static void main(String args[])
{
Mine mine = new Mine();
}
public Mine()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(800, 600);
setExtendedState(Frame.MAXIMIZED_BOTH);
setBackground(Color.WHITE);
try
{
File file = new File("resources/Manling.png");
sprite = ImageIO.read(file);
} catch (IOException e) {}
System.out.println(sprite.toString());
}
public void paint(Graphics g)
{
g.translate(getInsets().left, getInsets().top);
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(sprite, 0, 0, this);
Toolkit.getDefaultToolkit().sync();
g2d.dispose();
}
}
बस किसी भी छवि आप चाहते हैं का उपयोग कर, इस तरह परियोजना की स्थापना:
जब छवि 'mine.resources' में थी तब मुझे यह काम मिल गया और पथ '../resources/Manling.png' था। मैं वास्तव में क्यों नहीं समझता, लेकिन मैं शिकायत नहीं कर रहा हूं। धन्यवाद! – Tharwen