我在 paintComponent(Graphics g) 方法中绘制图像,以使它们与 Retina 显示器兼容
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);