JavaFX | FXML GUI 디자인 | FXML 기본 코드


그럼 FXML 파일이라고 하는 것은 어떤 형태로 되어있는 것일까? 그 기본 코드를 대충 이해하도록 하자.

FXML는 “.fxml” 확장자의 텍스트 파일로 작성된다. 이 소스 코드의 기본형을 정리하면 대충 다음과 같이 될 것이다.

FXML의 기본형

<?xml version="1.0"  encoding="UTF-8"?>

<?import XX ?>

<Pane클래스
   xmlns="……" 
   xmlns:fx="……">
   <!-- Pane에 통합 컨트롤 종류 -->
</Pane클래스>
후에, Java의 import 문에 해당하는 태그를 제공한다. 이것으로 사용하는 클래스를 import 할 수 있다. 태그를 쓰지 않으면, 클래스는 모든 풀 패키지를 지정하고 쓰지 않으면 갈 수 없게 되므로 주의하자.

FXML의 루트 태그(최상위 태그)는 Pane 클래스의 태그에 의해 작성된다. 예를 들어 BorderPane라면, <BorderPane>라는 태그를 작성하고 그 안에 컨트롤 등의 태그를 작성한다.

기본적으로 FXML에는 Java 클래스 이름을 그대로 태그 이름으로 쓰면 대개 인식 할 수 있다. Label이라면 <Label> 형태이다.

루트 태그에는 xmlns(XML 네임 스페이스) 특성을 작성한다. 또한 FXML 자신의 네임 스페이스 특성으로 xmlns:fx도 제공한다. 이 두 속성에 의해 이 XML 코드가 FXML 코드로 인식되게 된다.

사실 단순히 Java 코드 내에서 FXML 파일을 로드하여 사용할 뿐이라면, 이러한 네임 스페이스 특성은 필요 없게 된다. 쓰지 않아도 제대로 Java 내에서 FXML를 로드하여 사용할 수 있다.

이것들은 GUI 작성 도구 등을 사용하는 것이 될 수 있으면 좋지만, 구지 없어도 상관은 없다. 아무튼 FXML 기본으로 써놓도록 습관화하도록 하자.

아래 예제는 FXML의 기본 코드이다.

<?import XX ?>
 
<Pane클래스
    xmlns="http://javafx.com/javafx/8"
    xmlns:fx="http://javafx.com/fxml/1">
   <!-- Pane에 통합 컨트롤 종류 -->
</Pane클래스>