2017-10-12 8 views
0

내 앱에는 기본 창과 일부 변경 사항이 있습니다. 사용자가 응용 프로그램 (= 기본 창)을 닫으려는 경우 변경 사항이 손실되지 않도록 변경 내용의 보조 창을 닫으라는 확인을 사용자에게 요청합니다.JavaFx : 보조 창으로 인해 기본 창에서 확인을 취소 할 수있는 방법

이 코드는 내 주 수업에 있습니다.

제 문제는 보조 창을 열 었는지 확인할 수 없다는 것입니다.

주의 사항 : 보조 창은 주 컨트롤러 클래스에 생성됩니다.

감사합니다. SecondaryStage가 열려있는 경우

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) throws Exception { 

     Parent root = FXMLLoader.load(getClass().getResource("Main.fxml")); 

     Scene scene = new Scene(root); 
     scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm()); 
     primaryStage.getIcons().add(new Image("image.png")); 
     primaryStage.setTitle("Κάβα ποτών"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
     primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() { 
      @Override 
      public void handle(WindowEvent event) { 
      event.consume(); 
      closing(); 
      } 
     }); 

    } 

    public void closing() { 
     //if(the secondary window is closed) 
       //Platform.exit(); 
     //else 
       //ask confirmation with confirm alert 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 
+0

스택 오버플로에 오신 것을 환영합니다! 옆에있는 체크 표시를 클릭하여 아래의 대답을 수락하십시오. 이렇게하면 @HungryCosmos가 더 많은 담당자와 미래의 사용자에게 비슷한 질문을 검색함으로써 도움이 될 것입니다. – MMAdams

답변

1

사용 isShowing 방법을 결정 않습니다.

스테이지를 만들 때 변수에 SecondaryStage을 할당하고 공개로 설정하거나 게터를 제공하여 액세스 권한을 제공해야합니다.

And this is how to access controller from your Main class.

는 도움이되기를 바랍니다.

+0

그것은 작동합니다! Thx 남자! 마침내 내가 생각했던 것보다 쉬웠다! :피 –