Стадия рендеринга JavaFX ниже родительской

Согласно документации JavaFX, дочерний этап определяется

 A stage will always be on top of its parent window. 

Проблема в том, что я хотел бы отображать их как обычные окна в соответствии друг с другом (если вы нажмете на одно, оно будет отображаться над другим). Могу ли я сделать это без хакерского обходного пути?


person Arhowk    schedule 28.12.2014    source источник


Ответы (1)


Единственная дополнительная функциональность, которую вы получаете, делая этап дочерним по отношению к другому этапу, заключается в том, что дочерний этап автоматически закрывается при закрытии родительского этапа. Вы можете эмулировать это с помощью слушателя:

Stage firstStage = ... ;

Stage secondStage = new Stage();

// secondStage.initOwner(firstStage);
firstStage.addEventHandler(WindowEvent.WINDOW_HIDDEN, evt -> secondStage.hide());

// ...

Если вы полагаетесь на использование getOwner() в любом месте, вам придется найти способ обойти это.

(Я не уверен, что это можно назвать «хакерским обходным путем», но это должно сработать...).

person James_D    schedule 28.12.2014