我遇到了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;
}