javafxjavafx 시작하기


비고

JavaFX는 다양한 장치에서 실행될 수있는 RIA (Rich Internet Application)뿐 아니라 데스크톱 응용 프로그램을 만들고 제공하기위한 소프트웨어 플랫폼입니다. JavaFX는 Java SE 용 표준 GUI 라이브러리 인 Swing을 대체하기위한 것입니다.

IT를 사용하면 개발자가 리치 클라이언트 응용 프로그램을 설계, 작성, 테스트, 디버그 및 배포 할 수 있습니다.

스타일링을 위해 CSS (Cascading Style Sheets)를 사용하여 JavaFX 응용 프로그램의 모양을 사용자 정의 할 수 있습니다 ( JavaFX : CSS 참조). (F) XML 파일을 사용하여 응용 프로그램을 쉽게 작성하거나 개발할 수 있도록 구조를 객체화 할 수 있습니다 ( FXML 및 컨트롤러 참조) . Scene Builder는 코드 작성없이 UI 용 fxml 파일을 만들 수있는 비주얼 편집기입니다.

버전

번역 출시일
JavaFX 2 2011-10-10
JavaFX 8 2014-03-18

Hello World 프로그램

다음 코드는 클릭시 콘솔에 String 을 인쇄하는 단일 Button 을 포함하는 간단한 사용자 인터페이스를 만듭니다.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        // create a button with specified text
        Button button = new Button("Say 'Hello World'");

        // set a handler that is executed when the user activates the button
        // e.g. by clicking it or pressing enter while it's focused
        button.setOnAction(e -> {
           //Open information dialog that says hello
           Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?");
           alert.showAndWait();
        });

        // the root of the scene shown in the main window
        StackPane root = new StackPane();

        // add button as child of the root
        root.getChildren().add(button);

        // create a scene specifying the root and the size
        Scene scene = new Scene(root, 500, 300);

        // add scene to the stage
        primaryStage.setScene(scene);

        // make the stage visible
        primaryStage.show();
    }

    public static void main(String[] args) {
        // launch the HelloWorld application.

        // Since this method is a member of the HelloWorld class the first
        // parameter is not required
        Application.launch(HelloWorld.class, args);
    }

}
 

Application 클래스는 모든 JavaFX 응용 프로그램의 진입 점입니다. 하나의 Application 만 실행할 수 있으며 이는 다음을 사용하여 수행됩니다.

Application.launch(HelloWorld.class, args);
 

그러면 매개 변수로 전달 된 Application 클래스의 인스턴스가 만들어지고 JavaFX 플랫폼이 시작됩니다.

다음은 프로그래머에게 중요합니다.

  1. 첫 번째 launchApplication 클래스의 새 인스턴스를 만듭니다 (이 경우 HelloWorld ). 따라서 Application 클래스에는 인수가없는 생성자가 필요합니다.
  2. 생성 된 Application 인스턴스에서 init() 이 호출됩니다. 이 경우 Application 의 기본 구현은 아무 작업도 수행하지 않습니다.
  3. startAppication 인스턴스에 대해 호출되고 primary Stage (= window)가 메서드에 전달됩니다. 이 메소드는 JavaFX 응용 프로그램 스레드 (플랫폼 스레드)에서 자동으로 호출됩니다.
  4. 플랫폼이 종료 될 때까지 응용 프로그램이 실행됩니다. 이 경우 마지막 창을 닫을 때이 작업이 수행됩니다.
  5. stop 메소드는 Application 인스턴스에서 호출됩니다. 이 경우 Application 의 구현은 아무 것도하지 않습니다. 이 메소드는 JavaFX 응용 프로그램 스레드 (플랫폼 스레드)에서 자동으로 호출됩니다.

start 메소드에서 씬 그래프가 생성됩니다. 여기에는 ButtonStackPane 이라는 두 개의 Node .

Button 은 UI의 Button 나타내며 StackPane 은 배치를 결정하는 Button 의 컨테이너입니다.

이러한 Node 를 표시하기위한 Scene 이 생성됩니다. 마지막으로 Scene 은 UI 전체를 보여주는 윈도우 인 Stage 추가됩니다.

설치 또는 설정

JavaFX API는 Java SE Runtime Environment (JRE) 및 Java Development Kit (JDK)의 완전 통합 기능으로 사용할 수 있습니다. JDK는 모든 주요 데스크톱 플랫폼 (Windows, Mac OS X 및 Linux)에서 사용할 수 있으므로 JDK 7 이상으로 컴파일 된 JavaFX 응용 프로그램은 모든 주요 데스크톱 플랫폼에서도 실행됩니다. ARM 플랫폼에 대한 지원은 JavaFX 8에서도 사용할 수 있습니다. ARM 용 JDK에는 JavaFX의 기본, 그래픽 및 컨트롤 구성 요소가 포함되어 있습니다.

JavaFX를 설치하려면 선택한 Java Runtime 환경 및 Java Development Kit 버전을 설치하십시오.

JavaFX에서 제공하는 기능은 다음과 같습니다.

  1. Java API.
  2. FXML 및 씬 빌더.
  3. WebView.
  4. 스윙 상호 운용성.
  5. 붙박이 UI 통제 및 CSS.
  6. 모데나 테마.
  7. 3D 그래픽 기능.
  8. Canvas API.
  9. 인쇄 API.
  10. 서식있는 텍스트 지원.
  11. 멀티 터치 지원.
  12. Hi-DPI 지원.
  13. 하드웨어 가속 그래픽 파이프 라인
  14. 고성능 미디어 엔진.
  15. 자체 포함 된 응용 프로그램 배포 모델.