Используйте локальный BufferedImage, на котором вы хотите рисовать.Добавьте MouseMotionListener и реализуйте метод mouseDragged(MouseMotionEvent evt)
.В этом методе нарисуйте BufferedImage, выполнив что-то вроде этого:
// Assume img is your BufferedImage
Graphics g = img.getGraphics();
g.drawRect(evt.getX()-1, evt.getY()-1, 3, 3);
g.dispose();
// repaint your swing component
repaint();
А в вашем переопределенном методе paintComponent(Graphics g)
нарисуйте так:
g.drawImage(img, 0, 0, null);
Инициализируйте ваш BufferedImage следующим образом:
img = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_ARGB_PRE);
// Assuming `this` is your swing component