在鼠标悬停时显示GEF中的嵌套数字

时间:2014-04-14 08:18:15

标签: eclipse-gef draw2d

在鼠标悬停时显示GEF中的嵌套数字没有问题。在mouseHover(MouseEvent me)add(IFigure)mouseExited(MouseEvent me)上,我删除了该数字。

但是只要我添加一个Button(Draw2d),或者我添加一个附加MouseListener()的数字,现在当我将鼠标悬停在新添加的数字上时(在父项内)它消失了。

我认为问题在于第一个数字调用了mouseExited(MouseEvent me)方法。

所以,我在父图mouseExited(MouseEvent me)中执行了此操作:

Point exitLocation = me.getLocation();
if (containsPoint(exitLocation.x, exitLocation.y) == false) {
   remove(childFigure);
}

我在鼠标退出时看到,如果它仍然在父图的范围内,则不会删除子图。

但这大部分时间都有效。有时我的鼠标完全不在父图中,但子图不会从父图中删除。我不知道发生了什么。

这是一个错误吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我建议尝试使用不同的策略来隐藏/显示数字:

  1. 在父级创建时,请始终添加子级并将其标记为不可见,child.setVisible(false)
  2. 分别使用add()remove()
  3. 替换所有setVisible(false)setVisible(true)次调用