家庭作业?
基本上,您需要做的是:
- 按下鼠标时保持鼠标按下坐标并重新绘制
- 鼠标移动时保持当前鼠标坐标并重新绘制
- 在鼠标上移时,使鼠标下移坐标无效,以指示没有矩形,然后重新绘制。
- 在油漆上绘制背景,然后在鼠标按下和鼠标坐标之间进行调整。
如果您不想保留背景图像,则可以使用Graphics
xor函数来完成技巧,两次绘制相同的rect会擦除旧的rect,因此您可以使用它在图形对象上直接还原旧的图像。
编辑:代码xor用法示例:
public void paint(Graphics g){ g.setXORMode(Color.black); // draw old rect if there is one. this will erase it // draw new rect, this will draw xored g.setDrawMode(); // restore normal draw mode}Xor具有一个有趣的属性:
xor(xor(x)) = x
因此对同一个像素进行两次异或处理可恢复其原始颜色。



