MouseDragged事件太慢

时间:2016-11-24 13:35:05

标签: java swing mouseevent

enter image description here

我遇到了Java Swing的问题。简而言之,我在JPanel上有一些行(Line2D)。线条排列在Vector中。当我在一条线上移动鼠标时,我创建一个小矩形,检查它是否与该线相交,并在Vector中搜索该线。

一旦我在矢量中找到了这条线,我就想改变它。

如果我开始在线上的某个点上拖动鼠标,我会想要将这条线分成两行。为此,我在mouseDragged事件中重新绘制。

附近的图片很快就会变得清晰

我的问题是,如果我用鼠标快速拖动,重绘方法似乎不会跟随更改,而如果我慢慢拖动它可以很好地工作。

我错误地改变了截取该行的功能,但问题并没有出现,但是有一些例外,GUI不能正常工作。

这里是我提到的函数的代码:

public int getTransition(int x, int y) {
  int HIT_BOX_SIZE = 5;
  int boxX = x - HIT_BOX_SIZE / 2;
  int boxY = y - HIT_BOX_SIZE / 2;
  int width = HIT_BOX_SIZE;
  int height = HIT_BOX_SIZE;
  for (int i = 0; i < transition_list.size(); i++) {
    if (transition_list.get(i).transition.intersects(boxX, boxY, width, height))
      return i;
    else if (transition_list.get(i).spezzata == true)
      if (transition_list.get(i).segmento.intersects(boxX, boxY, width, height))
        return i;
  }
  return -1;
}

0 个答案:

没有答案