我想在JFrame中创建一个简单的画笔。为此,我创建了一个BufferedImage,当鼠标被拖动时,我只是重新绘制它,并将其设置为图像更改。
问题是如果我拖拽鼠标太快,并不是所有的点都画出来了。看上去像虚线。
下面是我更新图像的代码:
public void mouseDragged(MouseEvent evt)
{
int x = evt.getX();
int y = evt.getY();
if(eraser == false)
this.Dice(x, y);
else
this.Eraser(x, y);
g = (Graphics2D) this.getGraphics();
g.drawImage(image, positionX, positionY, null);
g.dispose();
}在、Dice、和橡皮擦方法中,我更改了图像(我设置了像素)。我真的不知道怎么修理它。
谢谢你的帮助。
发布于 2014-06-03 11:15:07
我认为这是由于Swing“缓冲”鼠标拖动事件(即,如果鼠标每个中断移动一个像素以上,它只会被调用一次)。您可以尝试存储最新报告的鼠标位置,而不是为像素调用一次this.Dice()/this.Eraser(),而是在开始(最后)位置和当前鼠标事件的位置之间调用它。
https://stackoverflow.com/questions/24013636
复制相似问题