我正在使用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),他們將被刪除,這就是我卡在哪裏......
你正在'圖像'本身上繪製的東西。該面板被清除,但圖像上繪製的形狀仍然存在。 – Titus
噢,我明白了。那麼你有什麼想法如何清除圖像? LE:明白了,您必須使用clearRect() – Gimv30
您可以用一種顏色(透明度)填充整個圖像。 – Titus