Я обнаружил, что удаление фигуры и добавление ее обратно испортит систему событий, так что, если, например, ваше намерение состоит в том, чтобы при перетаскивании фигуры в другое место вы хотели вывести эту фигуру вперед, перетаскивание прервано, и вы больше не получите никаких событий для этой фигуры. Чтобы вывести фигуру наверх, используйте следующий код:
final IFigure child = <figure you want to bring to the front>;
final IFigure parent = child.getParent();
final List children = child.getParent().getChildren();
children.remove( child );
children.add( child );
child.repaint();
Это манипулирование необработанным списком дочерних элементов, перемещение конкретного дочернего элемента на фронт z-порядка. Затем выдается перекраска ребенка, чтобы показать это изменение. Это решение относится только к Draw2d и не имеет ничего общего с GEF.