【发布时间】:2012-12-22 03:00:00
【问题描述】:
Java 开发人员您好,
到目前为止,我从未遇到过这种情况。这个场景是:
(为了让读者了解这个场景,让我们有这个插图。)
我们声明了 Box.png 和 Circle.png:
private final URL IMG1_DIRECTORY = Main.class.getResource("/res/Box.png");
private final URL IMG2_DIRECTORY = Main.class.getResource("/res/Circle.png");
在我们的构造函数下:
try {
box = ImageIO.read(IMG1_DIRECTORY);
} catch (Exception e) {
// Our catchblock here
}
try {
circle= ImageIO.read(IMG2_DIRECTORY);
} catch (Exception e) {
// Our catchblock here
}
currentImg = box;
使用paint 方法,框被绘制到我们的JPanel,如我们的Illustration 1 所示。
@Override
public void paint(Graphics g) {
g.drawImage(currentImg, DEFAULT_LOCATION, DEFAULT_LOCATION, null);
}
通过某个事件,mousePressed 在此示例中的图像将被更改。
@Override
public void mousePressed( MouseEvent e ) {
currentImg = circle;
repaint();
}
所需的输出显示在我们的Illustration 2 中。不幸的是,结果恰好是Illustration 3。
问题是:
- 为什么结果恰好是两个图像相互叠加?
- 另一件事,如果我有一个代码可以将图像重绘为圆形(来自Illustration 3),该框将覆盖circle 图像。
【问题讨论】:
标签: java image swing paint paintcomponent