カスタム JPanel を使用してペイントする Java ペイント プログラムがあります。JPanel をクリックすると小さな楕円形 (または円) が描画されますが、別の場所をクリックするたびに楕円形が消えます。座標も更新されますが、楕円形はそのままではなく、ユーザーが次にクリックした場所に移動します... カスタム JPanel のコードは次のとおりです。
int xCord, yCord;
public class PaintPanel extends JPanel implements MouseListener {
// default serial whatever...
private static final long serialVersionUID = -6514297510194472060L;
// initial values
int xCord = -10;
int yCord = -10;
public PaintPanel() {
addMouseListener(this);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(ProgramUI.currentColor);
g.fillOval(xCord, yCord, 8, 8);
repaint();
}
@Override
public void mouseClicked(MouseEvent m) {
}
@Override
public void mouseEntered(MouseEvent m) {
}
@Override
public void mouseExited(MouseEvent m) {
}
@Override
public void mousePressed(MouseEvent m) {
if (paintPanel.contains(m.getPoint())) {
xCord = m.getX();
yCord = m.getY();
System.out.println("x: " + xCord + " y: " + yCord);
}
}
@Override
public void mouseReleased(MouseEvent m) {
}
}
マウスボタンを離すまで、楕円形を連続してペイントするには、マウスを押し続ける必要があります。ここでの唯一の問題は、マウスの楕円形が更新されますが、元の位置が保存されないことです。これを修正するにはどうすればよいですか?