The fireEvent should probably happen after the check for getItems().getSize() == 0.
public void show(Node anchor, Side side, double dx, double dy) {
if (anchor == null) return;
Event.fireEvent(this, new Event(Menu.ON_SHOWING));
if (getItems().size() == 0) return;
public void show(Node anchor, Side side, double dx, double dy) {
if (anchor == null) return;
Event.fireEvent(this, new Event(Menu.ON_SHOWING));
if (getItems().size() == 0) return;