2017-10-16 69 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。在將來的帖子中,儘量只發布非工作示例,儘量保持它儘可能簡單。

相關問題