Поскольку J2EE использует слово «контейнер» в очень конкретном значении этого слова, вам лучше сказать «сколько диалогов верхнего уровня» в вашем примере. Обратите внимание, что в Swing «верх» также имеет очень специфическое значение, поэтому может быть только один «верхний» элемент, элемент, который (или будет) нарисован поверх всех других элементов. Поскольку ответ «один», скорее всего, не тот, который вам нужен, я предполагаю, что вы действительно имели в виду «Сколько диалогов открыто?»
Способ подсчета открытых диалогов заключается в добавлении в ваш класс SuperConstructor
члена, который может содержать «количество» открытых диалогов. В слушателе действий вашей кнопки вы создаете новый диалог. Вы можете поместить код для увеличения счетчика в классе, представляющем диалог, или в слушателе действия, который создал диалог. Любая техника хороша, но если вам нужно предпочтение, я предпочитаю поместить его в слушатель действия (встроенный в класс SuperConstructor
).
Если вам нужно, чтобы количество было больше, чем просто число открытых диалогов, вам нужно прослушивать события закрытия диалогов и уменьшать количество, когда диалоговые окна закрыты.
Обратите внимание, что установка диалога в Visible - это не то же самое, что удаление диалога, поэтому будьте осторожны или смотрите на видимость или существование (в зависимости от ваших желаний), но не пишите код, который увеличивается на существование, но уменьшается на видимость (или наоборот).