2017-01-23 5 views
0

Ich entwickle Netbeans Plattform-Anwendung.Ich habe Hauptfenster mit einem Button.On klicken Sie auf die Schaltfläche, öffnet sich ein JavaFX Modaldialog (Bühne).Blinken Anwendungssymbol in Taskleiste, wenn javafx modalen Dialog Fokus verliert

Nun, wenn der Benutzer auf ein Steuerelement z. B.: Textfeld im Hauptfenster klickt, geht der modale Dialog hinter Hauptfenster.Wenn dies das Verhalten ist, möchte ich das Anwendungssymbol in der Taskleiste markieren (blink), wenn der Dialog verliert focus.Please hilft Dank

Code:

  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

Können Sie etwas Code posten, den Sie versucht haben? – jhhoff02

+1

@ jhhoff02 Ich habe code.This Ich habe versucht, Anwendung Symbol blinken.Thanks! – User1916

+0

Sie können Ihre initOwner-Methode von dialogStage mit primaryStage oder mainStage festlegen. Es ist wie folgt: dialogStage.initOwner (mainStage). Bitte überprüfen Sie "MBec" Antwort. – GltknBtn

Antwort

0

Stellen Sie Ihren Stage seinen Besitzer modalen Dialog, dann Dialog wird immer oben auf Stage.

dialog.initOwner(stage); 
Verwandte Themen