Вы хотите, чтобы ваш класс Button был 'EventDispatcher'.Когда кнопка нажата, вы можете отправить свой closeEvent и прослушать событие в вашем окне.Это позволит вашему окну выполнять необходимую логику для выключения и удаления самого себя.
Если вы хотите, чтобы ваш основной Canvas управлял окнами, вы можете заставить свой холст прослушивать событие в окнах.Если событие вызывается на кнопке, оно должно всплыть до вашего окна UIComponent, и Canvas может удалить любые окна, в которые отправляется «closeEvent».
Если вы предоставите примеры кода, я могу дать вам более конкретныйпример.