JPanel을 사용하고 있는데 패널을 클릭하면 사각형이 그려집니다. 클릭 한 후에는 새 모양을 표시하고 이전 모양은 삭제합니다. 나는 이전의 도형이 제거되지 않는 이유를 모르지만 어떤 것을 시도했습니다.Jpanel 페인팅이 지워지지 않았습니다.
public class Canvas extends JPanel {
private BufferedImage image = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB);
private Graphics2D graphics = image.createGraphics();
Canvas() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
drawShapeAt(e.getX(), e.getY());
repaint();
}
});
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image,0,0,this);
}
public void drawShapeAt(int x, int y) {
graphics.setColor(Color.blue);
graphics.fill(new RegularPolygon(x, y, 100, 5));
}
}
나는 또한 내 JFrame의에이를 호출합니다. 내가 클릭하지만, 이전의 것들 removed..I 생각되지 않는 경우
Canvas mouse=new Canvas();
this.add(mouse, BorderLayout.CENTER);
mouse.drawShapeAt(250,250);
형상이 잘 그려, 중심입니다()와 super.paintComponent (g)가 제거 될 칠 사용하여, 그게 내가 붙어있어 ...
'이미지'자체에 무언가를 그리는 중입니다. 패널이 지워지지 만 이미지에 그려진 모양은 그대로 유지됩니다. – Titus
아, 알겠습니다. 그럼 내가 어떻게 이미지를 지울 수 있을지 아십니까? LE : 알겠습니다. clearRect()를 사용해야합니다. – Gimv30
전체 이미지를 단일 색상 (투명도)으로 채울 수 있습니다. – Titus