JMenuBar не является частью панели содержимого.
См. Раздел из учебника Swing по Использование контейнеров верхнего уровня для получения информации о структуре фрейма и его компонентах.
Фактический код в методе setJMenuBar ():
getRootPane().setMenuBar(menubar);
Поэтому я бы предположил, что ContainerListener необходимо добавить в корневую панель.
Редактировать:
Из учебной ссылки видно, что структура фрейма выглядит следующим образом:
- корневая панель
- многослойная панель
- строка меню
- панель содержимого
из кода, который я разместил, похоже, что строка меню добавляется в корневую панель, поэтому я предложил добавить слушатель контейнерав корневую панель.Однако кажется, что вам нужно добавить ContainerListener на многоуровневую панель:
getLayeredPane().addContainerListener(new ContainerAdapter()...