Javafx 는 fxml 방식 으로 대화 상 자 를 추가 합 니 다.
                                            
 2047 단어  JavaFx
                    
public class Main extends Application {
	@Override
	public void start(Stage primaryStage) {
		try {
			
			/*Parent root = FXMLLoader.load(getClass().getResource("study.fxml"));
			Scene scene = new Scene(root, 1000, 600);
			primaryStage.initStyle(StageStyle.DECORATED);
			primaryStage.setScene(scene);
			primaryStage.setTitle("Stony Brook Health");
			primaryStage.show();	*/
			
			FXMLLoader loader = new FXMLLoader();
			loader.setLocation(getClass().getResource("study.fxml"));
			loader.load();
			Parent root = loader.getRoot();
			//       ,         Stage  
			Controller c =(Controller)loader.getController();
			c.setStage(primaryStage);
			
			Scene scene = new Scene(root,1000,600);
			primaryStage.setScene(scene);
			primaryStage.show();
			
			
		} catch(Exception e) {
			e.printStackTrace();
		}
		
		
	}
	
	public static void main(String[] args) {
		launch(args);
	}
}
이 main 함수 의 코드 는 Stage 대상 을 가 져 와 Controller 에 전달 하 는 데 중점 을 둡 니 다.대화 상자 에 대화 상 자 를 다시 만 들 려 면 계속 끼 워 넣 으 십시오.
public Stage primaryStage;//  Stage  
    {
        FXMLLoader loader = new FXMLLoader();
        //Dialog.fxml     fxml  
		loader.setLocation(getClass().getResource("Dialog.fxml"));
		try {
			loader.load();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		Parent root = loader.getRoot();
		
		Stage modal_dialog = new Stage(StageStyle.DECORATED);
		modal_dialog.initModality(Modality.WINDOW_MODAL);
		//            。     
		modal_dialog.initOwner(primaryStage);
		Scene scene = new Scene(root);
		
		modal_dialog.setScene(scene);
		modal_dialog.show();
	}
	//       primaryStage       
	public void setStage(Stage temp)
	{
		primaryStage = temp;
	}