2017-10-19 14 views
-2

나는 Scene Builder를 사용하여 JavaFX GUI 응용 프로그램을 만듭니다. FXML을 사용하여 다음과 같이 구현하려고합니다.버튼을 통해 새 장면을 여는 FXML

reportButton = new Button("Report"); 
reportButton.setOnAction(e -> ReportPage.display()); 

그러나 컨트롤러 페이지를 사용하여이를 수행하는 방법을 알 수는 없습니다. 누군가 내가 그걸 어떻게 할 수 있는지 말해 줄 수 있습니까? 감사합니다.

+0

더 많은 코드와 fxml의 파일을 게시하시기 바랍니다 ... 그것은 정말 방법에 따라 달라집니다 서로 다른 견해를 구현했습니다. 공통된 부모보기가 있습니까? – deHaar

+0

컨트롤러에 적절한 방법을 정의하십시오. [documentation] (https://docs.oracle.com/javase/9/docs/api/javafx/fxml/doc-files/introduction_to_fxml.html#controller_method_event_handlers)를 참조하십시오. –

+0

새로운 무대를 열려고합니까? 현재 장면을 변경 하시겠습니까? 현재 스테이지의 컨테이너에 뷰를 배치 하시겠습니까? –

답변

0

다음은 어떻게 새로운 단계를 보여줄 수 있는지입니다. 액션 기능에이 코드를 추가하는
(당신이 코드에서 현장 빌더 해당 기능을 추가 할 수 있습니다 : 작업 속성에)

@FXML 
private void reportButtonHandler(ActionEvent event) { 
    FXMLLoader fxmlLoader = new 
     FXMLLoader(getClass().getResource("pathtofxml/ReportPage.fxml")); 
    Parent root1 = (Parent) fxmlLoader.load(); 
    Stage stage = new Stage(); 
    //set what you want on your stage 
    stage.initModality(Modality.APPLICATION_MODAL); 
    stage.setTitle("Report Page"); 
    stage.setScene(new Scene(root1)); 
    stage.setResizable(false); 
    stage.show(); 
} 
+0

고맙습니다. – ToniT