2016-10-12 5 views
1

Я новичок, я не знаю, как открыть новый stage в том же окне в javaFX8?JavaFX - Как открыть новый этап в том же окне?

Stage modal_stage = new Stage(); 
modal_stage.setScene(new Scene(root, 500, 575)); 
modal_stage.setTitle("modal"); 
modal_stage.initModality(Modality.APPLICATION_MODAL); 
modal_stage.initOwner(modal_stage.getOwner()); 
modal_stage.setResizable(false); 
modal_stage.show(); 

Когда я открыл новый stage через выше коду stage всегда открывается в разностном окне, как это:

enter image description here

Но я хочу, чтобы новый этап не будет создавать новый значок в панели задач StartMenu, так же, как диалог Swing's Jframe --- Независимо от того, сколько диалогов я открываю под jframe, оно всегда отображается как одно окно. Так что я могу сделать? Извините, я не очень хорошо разбираюсь в английском, мне хотелось бы уточнить вопрос.

+0

Вам необходимо установить владельца нового этапа на существующий этап. 'modalStage.initOwner (modalStage.getOwner())' ничего не делает (вы действительно делаете 'owner = owner'). –

+0

Спасибо за подсказку, он работает! – DxCCA

ответ

0

Предполагая, что у вас есть родительский этап:

Stage parentStage = new Stage(); 

и ребенка Этап:

Stage childStage = new Stage(); 

Вы должны установить владельца инициализации в childStage быть родителем:

childStage.initOwner(parent); 

Упомяните, что вышеуказанное должно быть вызвано до отображения childStage.

Также упоминайте, что при этом вы будете иметь какое-то поведение, например, когда parent ребенок сведен к минимуму, тогда childStage также будет сведен к минимуму.

+0

Спасибо за ответ! Я переписываю код следующим образом: «modal_stage.initOwner (main_stage);», он работает! – DxCCA