2012-08-24 25 views
2

如果paint()方法已用於其他目的,如何在JPanel中使用圖像作爲背景? (我試圖在面板上繪製圖像)。面板與圖像背景和鼠標繪製

這是我的代碼繪製爲鉛筆,但我不知道如何添加圖像作爲背景?

@Override 
public void paint(Graphics g) { 

    if (x >= 0 && y >= 0) { 
     g.setColor(Color.BLACK); 
     g.fillRect(x, y, 4, 4); 

    } 
} 

感謝迭戈

回答

4

建議:

  • 在JPanel的paint(...)方法不要畫,而是使用它的方法paintComponent(...)。這有幾個原因,其中一個原因是,如果您使用paint(...)方法,那麼您還負責繪製JPanel的邊框和子組件,並有可能會弄亂這些人的渲染。你也失去了Swing的自動雙緩衝。
  • 在調用方法中的任何其他代碼之前,首先調用父類的超級方法。這將允許JPanel刷新其背景並執行可能需要完成的任何圖形管家工作。
  • 接下來使用g.drawImage(...)
  • 然後做你的鉛筆畫。
+0

謝謝氣墊船。我可以解決它!你是一個「groso」,西班牙文字:) –

4

氣墊船完整的鰻魚在一個方向上給出了很好的建議。這是另一個。

  • 將圖像顯示在(ImageIcon中的a)JLabel中。
  • 當談到時間畫:在BufferedImage
    • 呼叫createGraphics()從而獲得Graphics2D對象。
    • 將線條或其他視覺元素繪製到圖形實例。
    • 處理圖形實例。
    • 請在標籤上撥打repaint()

E.G.如this answer所示。

​​

+1

1+爲好建議。 –

+0

@霍夫+1提醒我最好的投票你的答案。 :) –

+0

++ 1從我身邊也可以......這可能解決一個我將要發佈的問題!謝謝@AndrewThompson :) – Sujay