수색…


소개

JavaFX Scene Builder는 사용자가 코딩하지 않고 JavaFX 응용 프로그램 사용자 인터페이스를 신속하게 설계 할 수있는 시각적 레이아웃 도구입니다. FXML 파일을 생성하는 데 사용됩니다.

비고

JavaFX Scene Builder는 사용자가 코딩하지 않고 JavaFX 응용 프로그램 사용자 인터페이스를 신속하게 설계 할 수있는 시각적 레이아웃 도구입니다. 사용자는 UI 구성 요소를 작업 영역으로 드래그 앤 드롭하고 속성을 수정하고 스타일 시트를 적용 할 수 있으며 작성중인 레이아웃의 FXML 코드가 백그라운드에서 자동 생성됩니다. 결과는 응용 프로그램의 논리에 UI를 바인딩하여 Java 프로젝트와 결합 할 수있는 FXML 파일입니다.

모델보기 컨트롤러 (MVC) 관점에서 :

  • 사용자 인터페이스에 대한 설명이 들어있는 FXML 파일이보기입니다.
  • 컨트롤러는 Java 클래스이며 선택적으로 FXML 파일의 컨트롤러로 선언 된 Initializable 클래스를 구현합니다.
  • 모델은 컨트롤러를 통해 뷰에 연결할 수있는 Java 측에서 정의 된 도메인 객체로 구성됩니다.

씬 빌더 설치

  1. Gluon의 웹 사이트 에서 Scene Builder 가장 최신 버전을 다운로드하여 플랫폼 또는 실행 가능한 Jar 용 설치 프로그램을 선택하십시오.

  2. 설치 프로그램을 다운로드 한 상태에서 시스템에 Scene Builder를 두 번 클릭하여 설치하십시오. 업데이트 된 JRE가 포함됩니다.

  3. Scene Builder 아이콘을 두 번 클릭하여 독립 실행 형 응용 프로그램으로 실행하십시오.

  4. IDE 통합

    Scene Builder는 독립 실행 형 응용 프로그램이지만 Java SE 프로젝트와 통합 된 FXML 파일을 생성합니다. IDE에서이 프로젝트를 만들 때 FXML 파일을 편집 할 수 있도록 Scene Builder 경로에 대한 링크를 포함하는 것이 편리합니다.

    • NetBeans : Windows에서 NetBeans -> 도구 -> 옵션 -> Java -> JavaFX로 이동하십시오. Mac OS X에서 NetBeans -> 환경 설정 -> Java -> JavaFX로 이동하십시오. 씬 빌더 홈에 대한 경로를 제공하십시오. 장면 제작 도구 경로 - NetBeans
    • IntelliJ : Windows에서 IntelliJ-> Settings-> Languages ​​& Frameworks-> JavaFX로 이동하십시오. Mac OS X의 경우 IntelliJ -> 환경 설정 -> 언어 및 프레임 워크 -> JavaFX로 이동하십시오. 씬 빌더 홈에 대한 경로를 제공하십시오. 장면 작성기 경로 - IntelliJ
    • Eclipse : Windows에서 Eclipse-> Window-> Preferences-> JavaFX로 이동하십시오. Mac OS X에서 Eclipse-> Preferences-> JavaFX로 이동하십시오. 씬 빌더 홈에 대한 경로를 제공하십시오. 장면 작성기 경로 - Eclipse

약간의 역사

Scene Builder 프로젝트는 Oracle by JavaFX를 사용하여 작성되었으며 OpenJFX 프로젝트 내에서 오픈 소스입니다.

Oracle은 Java SE 8u40 릴리스 이전의 JavaFX 기능 만 포함하여 Scene Builder v 2.0까지 바이너리를 제공 하므로 Spinner 컨트롤과 같은 새로운 기능은 포함되어 있지 않습니다.

Gluon 은 바이너리 배포판을 인수했으며 최신 씬 빌더 8+는 여기 에서 모든 플랫폼에 다운로드 할 수 있습니다.

여기에는 JavaFX의 최신 변경 사항 및 최근 개선 사항 및 버그 수정이 포함됩니다.

오픈 소스 프로젝트는 찾을 수 있습니다 여기에 문제, 기능 요청 및 당겨 요청이 생성 될 수있는 곳.

오라클 레거시 바이너리는 여전히 여기 에서 다운로드 할 수 있습니다.

자습서

Scene Builder 자습서는 다음에서 찾을 수 있습니다.

FXML 자습서는 여기에서 찾을 수 있습니다.

사용자 지정 컨트롤

Gluon은 라이브러리 관리자 (Scene Builder 8.2.0부터 사용 가능)를 사용하여 타사 jar를 사용자 정의 컨트롤로 가져올 수있는 새로운 기능을 완벽하게 문서화 했습니다.

도서관 관리자

그럼 질문

태그 관련 : SceneBuilder

FXML을 사용하는 기본 JavaFX 프로젝트

이 프로젝트는 NetBeans (New Project -> JavaFX -> JavaFX FXML Application)로 작성된 FXML을 사용하는 기본 프로젝트입니다. 여기에는 세 개의 파일 만 있습니다.

주요 응용 프로그램 클래스

package org.stackoverflow;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class BasicApplication extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("BasicFXML.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

FXML 파일

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

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.stackoverflow.BasicFXMLController">
    <children>
        <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
        <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
    </children>
</AnchorPane>

제어 장치

package org.stackoverflow;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class BasicFXMLController {

    @FXML
    private Label label;

    public void initialize() {
        // TODO
    }   

    @FXML
    private void handleButtonAction(ActionEvent event) {
        label.setText("Hello World!");
    }

}

운영

프로젝트를 빌드하고 실행하면 클릭 가능한 버튼이있는 작은 창이 표시됩니다.

프로젝트 실행

작동 원리

요약하면, 메인 애플리케이션 클래스에서 FXMLLoader는로드 basicFXML.fxml 지정한대로 병 / 클래스 경로에서 FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) .

basicFXML.fxml 로딩 할 때 로더는 basicFXML.fxml 에서 fx:controller="org.stackoverflow.BasicFXMLController" 에 지정된대로 컨트롤러 클래스의 이름을 찾습니다.

그러면 로더는 FXML에 fx:id 가있는 모든 객체를 주입하려고 시도하고 컨트롤러 클래스에서 @FXML 주석으로 표시되는 해당 클래스의 인스턴스를 만듭니다.

이 샘플에서 FXMLLoader는 <Label ... fx:id="label"/> 기반으로 레이블을 만들고 @FXML private Label label; 레이블 인스턴스를 삽입합니다 @FXML private Label label; .

마지막으로 FXML 전체가로드되면 FXMLLoader가 컨트롤러의 initialize 메소드를 호출하고 버튼을 사용하여 액션 핸들러를 등록하는 코드가 실행됩니다.

편집 중

FXML 파일은 IDE 내에서 편집 할 수 있지만 IDE는 시각적 지침이 아닌 기본 구문 확인 및 자동 완성 기능 만 제공하므로 권장하지 않습니다.

가장 좋은 방법은 장면 빌더를 사용하여 FXML 파일을 여는 것으로 모든 변경 사항이 파일에 저장됩니다.

씬 빌더가 실행되어 파일을 열 수 있습니다 : 씬 빌더 아이콘

또는 IDE에서 직접 Scene Builder를 사용하여 파일을 열 수 있습니다.

  • NetBeans의 프로젝트 탭에서 파일을 두 번 클릭하거나 마우스 오른쪽 버튼을 클릭하고 Open 선택합니다.
  • IntelliJ의 프로젝트 탭에서 파일을 마우스 오른쪽 단추로 클릭하고 Open In Scene Builder 에서 Open In Scene Builder 선택합니다.
  • Eclipse의 프로젝트 탭에서 파일을 마우스 오른쪽 단추로 클릭 Open with Scene Builder 선택하십시오.

씬 빌더로 파일 편집하기

씬 빌더가 제대로 설치되고 경로가 IDE에 추가되면 (아래 비고 참조), 파일을 열게됩니다 :

장면 빌더로 편집 된 FXML

변경 내용은 왼쪽 창에서 새 컨테이너 또는 새 컨트롤을 드래그하여 만들 수 있으며 속성 및 레이아웃 값은 오른쪽 창에서 변경할 수 있습니다.

FXML을 Java 코드에 삽입 할 수있게하는 id 태그 중 하나는 fx:id 입니다. Code 창에서 설정할 수 있습니다.

fx : id 설정

변경 사항을 적용한 후 파일을 저장하십시오 (씬 빌더 -> 파일 -> 저장). IDE에서 파일을 편집하면 파일을 저장할 때 Scene Builder에서 업데이트됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow