내 Application
수업은 다음과 같습니다.
public class Test extends Application {
private static Logger logger = LogManager.getRootLogger();
@Override
public void start(Stage primaryStage) throws Exception {
String resourcePath = "/resources/fxml/MainView.fxml";
URL location = getClass().getResource(resourcePath);
FXMLLoader fxmlLoader = new FXMLLoader(location);
Scene scene = new Scene(fxmlLoader.load(), 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
는 먼저 기본 생성자를 호출 한 다음 메서드 를 호출 FXMLLoader
하여 해당 컨트롤러의 인스턴스 ( FXML
를 통해 파일에 제공됨)를 만듭니다 .fx:controller
initialize
public class MainViewController {
public MainViewController() {
System.out.println("first");
}
@FXML
public void initialize() {
System.out.println("second");
}
}
출력은 다음과 같습니다.
first
second
그렇다면 initialize
방법이 존재 하는 이유는 무엇입니까? 생성자 또는 initialize
컨트롤러를 초기화하는 방법을 사용하는 것의 차이점은 무엇입니까 ?
제안 해 주셔서 감사합니다!
FXMLLoader
죠? 그래서 나는initialize()
-메소드 를 기다리는 것의 이점을 보지 못합니다 . FXML이로드 되 자마자 다음 코드에서@FXML
변수에 액세스 할 수 있습니다. 물론, 그는 생성자가 아닌 시작 메서드에서 수행하지만initialize()
그의 경우에는 어떤 이점이 있습니까?