0

カスタム 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) {
        }

    }

マウスボタンを離すまで、楕円形を連続してペイントするには、マウスを押し続ける必要があります。ここでの唯一の問題は、マウスの楕円形が更新されますが、元の位置が保存されないことです。これを修正するにはどうすればよいですか?

4

3 に答える 3