JavaFX | FXML 액션 이벤트 구현 | <fx:script>으로 이벤트 처리 생성


FXML에는 XML 기반으로 GUI를 만들 수 있다. 하지만 실제로 만들 때에 “이것으로 이벤트 처리는 어떻게 만드는거야?“라고 생각한 사람도 있을지도 모른다. XML는 Java로 부터 분리된 형태로 GUI를 만드는 것이기 때문에, 그것도 Java에서 실행되는 코드에 연결하는 구조가 필요하다.

여기에는 몇 가지 방법이 있다. 우선 가장 간단한 <fx:script> 태그를 사용한 구현"부터 해보록 하자.

FXML에는 사실 이벤트 처리 코드까지 작성할 수 있다. 이는 다음과 같은 형태가 된다.

<fx:script>
function 함수(인수) {
    // 처리를 기술
}
</fx script>

이와 같은 형태로 수행할 처리를 함수로 지정 정의한다. 그리고 이 함수를 사용하는 컨트롤에 속성으로 지정한다. 액션 이벤트라면

onAction="함수(인수);"

이런 식으로 컨트롤의 태그에 속성을 작성한다. 이렇게 하면 컨트롤에서 액션 이벤트가 발생하면 지정된 함수를 호출 실행 되도록 한다.

“그런데 function ……는, Java에서는 찾을 수가 없다"라고 생각할 수 있다. 실은 이것은 Java가 아니라 “JavaScript 함수"이다. 즉, FXML를 사용하면, Java를 사용하지 않고, JavaScript으로 이벤트 처리를 작성할 수 있는 것이다. 약간의 처리를 빠르게 구현하고자 한다면 매우 뛰어난 방식이다.