1

我正在开发一个图像处理程序。我真的想在这个问题上得到一点帮助,我希望能找到解决方案。

我的问题是。当鼠标单击并拖动 JPanel 内的图像时,我使用户能够绘制矩形,当用户移出 JPanel 边界时,矩形仍然在一半内绘制了一些矩形......明白了吗?

好的 .. 绘制的矩形,它实际上在包含图像的 JPanel 的边界之外,它不会将自己保持在边界内,所以当用户将鼠标拖出时,我希望将它保持在里面永远不会熄灭,因为这会给出一个空 X 和 Y,并且会给你和异常 RasterFormatException,x 位于光栅之外!谁能帮我控制绘制的矩形?

提前致谢 ..

4

1 回答 1

3

在您的 MouseMotionListener、mouseDragged 方法中,检查鼠标的 Point 是否超出了 JPanel 的范围,如果超出则做出相应的响应。

public void mouseDragged(MouseEvent me) {
  Dimension d = getSize();
  Point p = me.getPoint();
  if (p.x > d.x || p.x < 0 || p.y > d.y ||d.y < 0) {
    // set drawing parameters to zero
    repaint();
    return;
  }

  // other mouse drawing code
}
于 2013-09-17T16:55:00.923 回答