我正在嘗試使用getImage()
在我正在編寫的應用程序中在JPanel
上顯示圖像。我已經試過並試圖讓它爲我工作,並最終發現,即使路徑完全不正確,它仍然不起作用,也不會像預期的那樣返回NullPointerException
。爲什麼getImage()返回錯誤或顯示圖像?
Image i;
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(i, 0, 0, 200, 200, this);
} // end paintComponent();
public Pnl() {
super();
setBackground(Color.GREEN);
setBorder(BorderFactory.createLineBorder(Color.GRAY, 10));
i = Toolkit.getDefaultToolkit().getImage("shrek.jpg");
} // end constructor
當我運行參數的代碼,如getImage()
「怪物史萊克...... jdhhd」或諸如此類的東西,它完全一樣的東西。
爲什麼你會期望上面的代碼拋出NPE?上面的代碼中沒有任何內容應該這樣做。你測試過你的圖像實際上是否爲空?我將使用'ImageIO.read(...)'來獲取圖像,並將其作爲資源而不是文件。在使用之前我會檢查null。 –
這是你的全部代碼嗎?你甚至從來沒有將圖像繪製到屏幕上。 –
同樣,新代碼中沒有任何內容會拋出NPE。再次測試圖像是否爲空。您可以使用println語句來幫助您進行調試。再次使用'ImageIO.read(...)'。再次,獲取圖像作爲資源,而不是文件。我覺得你好像忽略了我的建議。 –