[JavaFX] controller.java 에서 생성자 구현하기

음.. 생성자란 표현을 사용하는 것이 맞는지는 모르겠다만, JavaFX에서 프로젝트를 생성하면, 클래스가 기본으로 2개가 생성된다. 하나는 Main.java이고 나머지 하난 Controller.java 이다. 알다시피 Main.java 에서는 start 메소드와 main 메소드가 존재해 프로그램이 시작되었을 때 코드를 실행시킬 수 있으나, (극히 주관적으로) 나는 Main 클래스에서 Controller 로 접근하는게 어려웠다. 접근하려는 이유가 @FXML 을 사용하여, FXML 로 작성한 컨트롤들에 접근을 해야하는데, 경험상 Main 클래스에서는 저것이 안된다. 그래서 Controller 클래스에서 FXML 에 접근을 해줘야 하는데, 기본적으로 Controller 클래스는 start, main 메소드를 가지고 있지 않기 때문에 initialize 를 해주어야 한다. (사실 나도 이 개념에 대해 정확히 모른다.)

import javafx.fxml.Initializable;

일단 Import 가 필요하다. javafx.fxml.initializable 을 import 해주자.

public class Controller {

그리고 클래스 상단부를 보면 이런식으로 되어 있을텐데 implements 를 해줘야 한다.

public class Controller implements Initializable {

initializable 을 implement 해준다.

@Override
public void initialize(URL location, ResourceBundle resources) {
    System.out.println("Controller!");
}

이렇게 함수 하나 만들어주고, 오버라이드 해주면 끝! 정상적으로 실행되는지 확인해보자.

스크린샷_2015-01-21_오전_12.07.54

왠지모르겠지만, JavaFX 는 국내는 물론이고 해외도 자료가 별로 없다. 구글링을 해봐도 10000 몇개의 결과만 있을 뿐.. 스택오버플로우만 나온다. 이참에 영어공부좀 많이 해둬야겠다.

You may also like...