Для проектов с приличным размером мне сказали, что когда у вас есть классы, расширяющие JPanels, лучше всего использовать вложенные классы для реализации слушателей. Например, у меня может быть класс FactoryScreen, который расширяет JPanel и имеет вложенный класс FactoryScreenBrain, который реализует все необходимые прослушиватели.
Я никогда не мог получить хорошее объяснение конкретных преимуществ или недостатков для инкапсуляции моих классов таким образом, и до сих пор всегда были только классы, которые расширяют JPanel и реализуют слушателей. Может ли кто-нибудь дать мне некоторые рекомендации по этому поводу?