如果paint()方法已用于其他目的,如何在JPanel中将图像用作背景? (我试图在面板中绘制图像)。
这是我用铅笔绘制的代码,但我不知道如何将图像添加为背景?
@Override
public void paint(Graphics g) {
if (x >= 0 && y >= 0) {
g.setColor(Color.BLACK);
g.fillRect(x, y, 4, 4);
}
}
谢谢迭戈
答案 0 :(得分:4)
建议:
paint(...)
方法中绘制,而是使用它的paintComponent(...)
方法。这有几个原因,一个是如果你使用paint(...)
方法,那么你还负责绘制JPanel的边框和子组件,并且有可能弄乱这些人的渲染。你也失去了Swing的自动双缓冲。g.drawImage(...)
,答案 1 :(得分:4)
Hovercraft Full Of Eels在一个方向上给出了很好的建议。这是另一个。
ImageIcon
} JLabel
中的createGraphics()
显示图片。BufferedImage
上的Graphics2D
获取repaint()
个对象。E.G。如this answer中所示。