我想编写一个代码来绘制一个填充的椭圆形,只要在面板内单击鼠标。我曾经开发过一些代码,但不幸的是,当我试图进行下一次点击时,整个面板被消隐,出现了新的点。我想保留以前的点,并在下一个用户点击面板时添加一些新点。如何实现MyPanel
的绘图组件?这是我的代码;它不能正常工作,因为它产生一些小点而不是矩形。
class MyPanel extends JPanel {
Point pointClicked;
public MyPanel() {
this.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
pointClicked = e.getPoint();
}
});
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillRect(pointClicked.x, pointClicked.y, 1, 1);
}
}
答案 0 :(得分:3)
我希望保留以前的观点,并在下一位用户点击面板时添加一些新点。
每次调用paintComponent()方法时,您需要跟踪绘制的每个椭圆并重新绘制所有椭圆。
查看Custom Painting Approaches有两种不同的方法