Що вам заважає в головному контролері зробити так?
button.setOnAction(myClassThatImplementsEventHandlerInterface::handleButtonOnAction);
Хоч би як, таке розділення нічим не цікавіше, тим паче як "для початківця" (початківці мають робити by book, а не вигадувати собі геморой), а перше питання яке собі потім поставиш буде "а як, наприклад, змінити текст label по натисканні" (в другому класі не буде доступу до label якій визначено в контролері; так, можна передавати в конструктор, а сенс?).
Таке має знаходитися в одному контролері. Якщо контролер виходить важким - це сигнал, що треба view розбити на компоненти. Не винести listeners в інший клас, а винести view та її контролер в окремий компонент і вибудувати в головний вію.