2015-01-13 88 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);(没有最后一个点) –