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
.
問題は次のとおり
です。
- 別のことですが、画像を円 ( From ) に再描画するコードがある場合Illustration 3
、ボックスは画像をオーバーレイするだけcircle
です。