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上でこれを呼び出します。
Canvas mouse=new Canvas();
this.add(mouse, BorderLayout.CENTER);
mouse.drawShapeAt(250,250);
形状がきれいに描かれている)私がクリックした場所、センターがあるが、以前のものはremoved..Iは、(使用して再描画することを考えませんし、super.paintComponent(G)、それらは削除されるだろう、それは私がこだわっている場所です...
あなたは 'image'自体に何かを描いています。パネルは消去されますが、画像に描かれた図形は残ります。 – Titus
ああ、私はそれを得る。それでは、どのようにイメージをクリアすることができますか? LE:入手しました。あなたはclearRect()を使用する必要があります – Gimv30
イメージ全体を単一の色(透明)で塗りつぶすことができます。 – Titus