Retina ディスプレイと互換性を持たせるために、paintComponent(Graphics g) メソッドで画像を描画しています。
g.drawImage(image, 0, 0, imageWidth/2, imageHeight/2, null);
すべてが完璧に機能しますが、画像の影が重なり合っています。それは絵を醜くします。そのため、新しく描画する前に画像をクリアする必要があります。問題は次のとおりです。
画像のクリアに問題はありませんでしたが、問題は親要素の背景が重ならないようにすることです。今はhttp://cl.ly/image/0K1u0q2M150Wのように見えます。
他のトピックのメソッドを使用しました:
g2d.setBackground(new Color(255,255,255,0));
g2d.clearRect(0, 0, ICON_WIDTH, ICON_HEIGHT);
としても
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR));
g2d.setBackground(new Color(255,255,255,0));
g2d.clearRect(0, 0, ICON_WIDTH, ICON_HEIGHT);
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
および他のいくつか。
これはhttp://cl.ly/image/2V1R1v0X452Nのように見えるはずで 、repaint() メソッドを数回呼び出した後の様子です。イメージを別のイメージに変更するには、それを呼び出す必要があります。
私のpaintComponentメソッド:
Image image;
if (flag) {
image = image1;
} else {
image = image2;
}
g2d.drawImage(image, 0, 0, IMAGE_SIZE, IMAGE_SIZE, null);