我试过四处寻找,但似乎没有什么能覆盖我正在寻找的东西。
我目前正在为我的课程制作一个迷你图形编辑器,它现在可以用于画笔工具,但是如果我太快移动鼠标它似乎根本不能很好地工作。
绘图是通过鼠标监听器完成的,在按住鼠标时触发“绘图”事件。然后每次循环滚动时,它会根据其他设置添加一个圆圈(大小和颜色)。该方法采用初始鼠标位置(MouseEvent e),然后使用PointerInfo更新当前鼠标位置,并在其周围进行一些计算,以确保它在当前位置绘制(画布使用空布局)。
一些代码显示它在做什么:
void setMouseDown(MouseEvent e){
PointerInfo mousePos = MouseInfo.getPointerInfo();
int mouseRelativeX = e.getX();
int mouseRelativeY = e.getY();
int startX = (int) mousePos.getLocation().getX();
int startY = (int) mousePos.getLocation().getY();
while(mouseDown){
mousePos = MouseInfo.getPointerInfo();
mouseMarginX = mouseRelativeX - (startX - (int) mousePos.getLocation().getX());
mouseMarginY = mouseRelativeY - (startY -(int) mousePos.getLocation().getY());
if(curTool == "drawPen"){
DrawPen drawPen = new DrawPen(toolSize, Color.BLACK);
add(drawPen);
drawPen.setBounds(mouseMarginX, mouseMarginY, toolSize, toolSize);
}else if(curTool == ""){
}else if(curTool == ""){
}else if(curTool == ""){
}
revalidate();
repaint();
}
}
如果有人对最佳方法有任何建议,那么我们将不胜感激。感谢