2017-01-23 5 views
0

私はnetbeansプラットフォームアプリケーションを開発しています。メインウィンドウにはボタンがあります。ボタンをクリックすると、Javafxモーダルダイアログ(ステージ)が開きます。javafxモーダルダイアログがフォーカスを失ったときにタスクバーのアプリケーションアイコンを点滅

ユーザーがメインウィンドウのテキストフィールドなどのコントロールをクリックすると、モーダルダイアログがメインウィンドウの後ろに表示されます。これが動作する場合は、ダイアログボックスが消えたときにタスクバーのアプリケーションアイコンを強調表示(点滅)したいfocus.Pleaseの助けのおかげ

コード:!

  final Stage dialogStage = new Stage(); 
      Scene scene = new Scene(fxmlUi); 
      dialogStage.focusedProperty().addListener(new ChangeListener<Boolean>() { 
      boolean atFirst = false; 
     @Override 
      public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue) { 
       if (!newPropertyValue) { 
        dialogStage.setIconified(true); 
        dialogStage.hide(); 
       } 
       if (!atFirst) { 
        atFirst = true; 
        dialogStage.show(); 
       } else { 
        dialogStage.setIconified(true); 
        dialogStage.show(); 
       } 
      } 
     }); 
     dialogStage.setScene(scene); 
     dialogStage.initModality(Modality.APPLICATION_MODAL); 
     dialogStage.setResizable(true); 
     dialogStage.centerOnScreen(); 
     dialogStage.showAndWait(); 
+0

試したコードを投稿することはできますか? – jhhoff02

+1

@ jhhoff02私はコードを追加しました。これは、アプリケーションアイコンblink.Thisを作ってみました! – User1916

+0

dialogStageのinitOwnerメソッドを、primaryStageまたはmainStageで設定できます。これは、dialogStage.initOwner(mainStage)と似ています。 「MBec」の回答を確認してください。 – GltknBtn

答えて

0

は、ダイアログが常にStageの上になり、モーダルダイアログの所有者であるためにあなたのStageを設定します。

dialog.initOwner(stage); 
関連する問題