如果 paint() 方法已用于其他目的,我如何在 JPanel 中使用图像作为背景?(我试图在面板中绘制图像)。
这是我用铅笔画的代码,但我不知道如何将图像添加为背景?
@Override
public void paint(Graphics g) {
if (x >= 0 && y >= 0) {
g.setColor(Color.BLACK);
g.fillRect(x, y, 4, 4);
}
}
谢谢迭戈
Hovercraft Full Of Eels gave good advice on one direction to take. Here is another.
ImageIcon
in a) JLabel
.createGraphics()
on the BufferedImage
to gain a Graphics2D
object.repaint()
on the label.E.G. as seen in this answer.
建议:
paint(...)
方法中绘制,而是使用它的paintComponent(...)
方法。这有几个原因,一个是如果您使用该paint(...)
方法,那么您还负责绘制 JPanel 的边框和子组件,并且有可能弄乱这些家伙的渲染。你也失去了 Swing 的自动双缓冲。g.drawImage(...)
,