Java: Repaint artifacts with alpha painting
-
22-06-2021 - |
Frage
I just had a problem with artifacts at a JPanel which contains transparent parts. My JPanel overrides the paintComponent() method:
protected void paintComponent(Graphics g) {
g2d = (Graphics2D) g;
drawMyAplhaImage(g2d);
}
As you can see, the Image drawn on the JPanel is a bit smaller than the JPanel itself.
Lösung
The solution is to redraw the Parent component.
To save ressources I just repaint the area of the JPanel.
The new paintComponent() method:
protected void paintComponent(Graphics g) {
g2d = (Graphics2D) g;
getParent().repaint(getX(), getY(), getWidth(), getHeight());
drawMyAplhaImage(g2d);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow