java - 当用户绘制时,在JPanel边界内保持绘制矩形

时间:2013-09-17 16:49:41

标签: java swing rect

开发图像处理程序。我真的希望在这个问题上有所帮助,我希望找到解决方案。

我的问题是。当鼠标在JPanel内部的图像上单击并拖动时,用户可以绘制矩形,当用户移出JPanel边界时,矩形仍然会在半部分内部绘制一些内容...得到它了吗?

好吧..绘制的矩形,它实际上在包含图像的JPanel的边界之外,它不会将自己保持在边界内,所以当用户将鼠标拖出来时我想保持它内部永远不会出去因为这个将给出一个空的X和Y,并将给你和异常RasterFormatException,x位于栅格之外! 任何人都可以帮助我控制彩绘矩形吗?

提前感谢..

1 个答案:

答案 0 :(得分:2)

在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
}