2014-10-03 4 views
0

응용 프로그램을 시작할 때 시스템 정보를 기반으로 여러 UI 요소를 설정하려고합니다 (예 : css 또는 fxml 파일에서 정적으로 설정하는 정보). 컨트롤러 생성자가이 작업을 수행하는 가장 좋은 장소입니까? 첫 번째 고려 사항은 응용 프로그램을 확장하는 기본 클래스의 start() 또는 init() 메서드에서 수행하는 것이었지만 오히려 프로그래머가 UI 계층에있는 모든 요소에 쉽게 액세스 할 수 없습니다. (반면에 @FXML 주입을 통해 각각의 컨트롤러에서 매우 쉽다)JavaFX에서 GUI를 초기화하는 가장 좋은 방법은 무엇입니까?

답변

0

그것은 필요한 작업의 종류에 달려있다. 응용 프로그램의 스테이지에 의존하는 것이 필요한 경우 start 메소드에서 수행하십시오. 그렇지 않은 경우 생성자, init 또는 start 메소드에서 수행 할 수 있습니다. 시작 메커니즘은 Application 하위 클래스가 인수가없는 생성자를 제공 할 것으로 예상하므로 시작 논리를 여기에 포함하면 생성자 매개 변수가 필요하지 않습니다.

그러나 컨트롤러를 사용하려는 경우 (이 권장 사항)이 논리는 응용 프로그램 클래스가 아닌 초기화 메서드에서 발생해야합니다.

컨트롤러에서 무대에 대한 참조가 필요하면 스테이지 참조를 애플리케이션 클래스에서 공개 및 정적으로 만드는 것과 같이 컨트롤러에 대한 참조를 여기에 전달하는 것과 같은 많은 해결책을 찾을 수 있습니다. 컨트롤러의 응용 프로그램 시작 메서드에서 설정할 수있는 필드.

관련 문제