2017-10-16 47 views
0

我正在尝试制作某种Paint程序,但在JAVA中。借助图形课程,我可以设置绘画空间并绘制它。我希望这个空间是一个图像而不是一个空白空间,尽管我竭尽全力,但我不能。如果我成功了,我就无法画出形象。如何在此代码中设置图像而不是白色?

非工作代码的图像:https://pastebin.com/zNnWGjgS

Stackoverflow forces me to put some code here but it's too long 

工作代码,而无需像:https://pastebin.com/r1nFHY9c

Stackoverflow forces me to put some code here but it's too long 

请帮我家伙。谢谢。

+2

粘贴您认为会解决问题的特定代码。如果有人认为这个问题可能在别的地方,他们会要求那些代码。不要指望陌生人阅读你的整个代码。 – Neo

回答

0

只要快速查看一下paintComponent,我就能看出你很困惑。你所要做的就是将图像的图像加载到Graphics2D g2并在其上画线。在您的非工作例如你:

  1. 创建createImage(getSize().width, getSize().height);

  2. 您可以设置图形G2空图像图形

  3. 一个新的形象,您加载image并丢弃先前的初始化离开g2与空的一个。

  4. 您绘制图像,而所有更改都是对g2图形进行的。

要改正错误只是改变的paintComponent到:

@Override 
protected void paintComponent(Graphics g) { 
    if (image == null) { 
     try { 
      image = ImageIO.read(new URL("https://i.imgur.com/mjxu50B.png")); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     g2 = (Graphics2D) image.getGraphics(); 

     // enable antialiasing 
     g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
     g2.setColor(Color.BLACK); 
    } 

    g.drawImage(image, 0, 0, null); 
} 

PS。在将来的帖子中,尽量只发布非工作示例,尽量保持它尽可能简单。

相关问题