2017-10-16 5 views
0

私はある種のペイントプログラムを作成しようとしていますが、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

あなたの絵を簡単に見て、私はあなたが混乱しているのを見ることができます。あなたがしたいのは、あなたの画像のグラフィックスをGraphics2D g2にロードし、その上に線を引くことだけです。あなた以外の作業の例では、あなた:

  1. あなたはimageをロードしたまま、以前の初期化を破棄しますが、イメージのグラフィック

  2. を空にするために、グラフィックスG2を設定createImage(getSize().width, getSize().height);

  3. で新しいイメージを作成します。 g2は空のままです。

  4. すべての変更がg2グラフィックスに対して行われている間に、画像を描画します。

    @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:だけにpaintComponentを変更するあなたのエラーを修正するには

。将来的には、非実用的な例だけを投稿し、できるだけ単純なままにしてください。

関連する問題