2016-08-02 19 views
7

親ステージ「stage1」が子ステージ「stage2」を開いているので、以下のように子ステージのモダリティが設定されています。その後私もう一度、私はステージ1からステージ2を開いたときに第三者のウィンドウに切り替えてアプリケーションステージに切り替えると親ステージが表示されない

stage2.initModality(Modality.APPLICATION_MODAL); 

は今、ステージ1が期待されているステージ2の背後に表示されている、しかし、私は「Ctrlキー+タブ」キーを押したときに、例えば第三パティのapplicatonに制御スイッチ「展望」 "Ctrl + Tab"キーを押すと、メインアプリケーションに戻り、stage2が表示されますが、stage1は非表示になります。ステージ1はステージ2の後ろに隠れていなければならないと私は期待しています。

どのようなヘルプも大幅に強化されています。

答えて

5

Stage2.getOwner() == nullが該当するからです。あなたの期待は、それが働く方法です。それがfalseのときです。ので、あなたの問題を解決するために、いくつかのデモも

@Override 
public void start(Stage stage) { 
    Pane p = new Pane(); 
    p.setStyle("-fx-background-color: red"); 
    stage.setTitle("I AM THE PARENT"); 
    Scene scene = new Scene(p); 
    stage.setWidth(600); 
    stage.setHeight(600); 
    stage.setScene(scene); 
    stage.show(); 
    Stage s = new Stage(StageStyle.DECORATED); 
    s.initModality(Modality.APPLICATION_MODAL); 
    p = new Pane(); 
    p.setStyle("-fx-background-color: yellow"); 
    s.setScene(new Scene(p,150,150)); 
    //s.initOwner(stage); //with this commented it wont work 
    s.show(); 
} 

あなたのプレスCTRL + TABウィンドウがポップアップするときにのみ2番目のウィンドウが表示されていることに気づくでしょうにこの

Stage2.initOwner(Stage1); 

ediitここ

をされませんSTAGE2 、それは彼が知っている人は、その親がないので、所有者が所有者を持っている場合は、所有者だけを示しています

+0

パーフェクト!それは私の問題を解決する。どうもありがとうございます !!! – DeepInJava

関連する問題