2015-01-13 138 views
0

好吧,我已經按照THIS指導了使用Java 2D圖形進行繪圖的youtube教程,但是如何執行此操作以便從URL而不是資源中提取圖像?Java 2D圖形從URL而不是資源中獲取圖像

,如果您能更新,並聯系我到新的代碼,這將是一個+

非常感謝你提前

import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.io.IOException; 

import javax.imageio.ImageIO; 
import javax.swing.JPanel; 

public class Screen extends JPanel { 

    private BufferedImage image; 

    public Screen() { 
     try { 
      image = Image.IO.read(getClass().getResourceAsStream("/imagee.png")); 
     } catch(IOException e) { 
      e.printStackTrace(); 
     } 

     repaint(); 
    } 

    public void paint(Graphics g) { 
     g.drawImage(image, 10, 10, null); 
    } 

}  

我並不確切地知道Java的,我只需要做到這一點的東西

+0

創建一個URL實例並將其傳遞給ImageIO.read ... – MadProgrammer

+1

如果代碼是本教程的示例,那麼本教程是錯誤的,應該找到一個新的實例。不要重寫paint,而是重寫paintComponent。你必須調用super.paint(或者,如果你已經重寫了paintComponent,則爲super.paintComponent),以便維護繪畫鏈並防止發生可能的圖形故障。這也將是更容易使用JLabel ... – MadProgrammer

回答

1

喜歡的東西...

image = Image.IO.read(new URL("http://...")); 

FYI Class#getResource返回URL

如果代碼是本教程的示例,那麼本教程是錯誤的,您應該找到一個新代碼。請勿覆蓋paint,而是覆蓋paintComponent。您必須致電super.paint(或super.paintComponent,如果您已覆蓋paintComponent)以維護油漆鏈並防止發生可能的圖形故障。這也將是更容易使用JLabel ...

1

你應該嘗試的URL對象:

網址URL =新的URL(下稱 「-URL」);

BufferedImage image = ImageIO.read(url);

+0

謝謝,但我現在得到這個時編譯: http://prntscr.com/5s48vn – user3399851

+1

@ user3399851'ImageIO.read(url);' – MadProgrammer

+0

對不起,是從ImageIO讀取的方法:BufferedImage image = ImageIO.read。(url);(沒有最後一個點) –