javafxjavafx入门


备注

JavaFX是一个用于创建和交付桌面应用程序的软件平台,以及可以在各种设备上运行的富Internet应用程序(RIA)。 JavaFX旨在将Swing替换为Java SE的标准GUI库。

IT使开发人员能够设计,创建,测试,调试和部署富客户端应用程序。

JavaFX应用程序的外观可以使用层叠样式表(CSS)进行样式化(参见JavaFX:CSS )和(F)XML文件可用于对象结构,从而可以轻松构建或开发应用程序(请参阅FXML和控制器 ) 。 Scene Builder是一个可视化编辑器,允许为UI创建fxml文件而无需编写代码。

版本

发布日期
JavaFX 2 2011-10-10
JavaFX 8 2014年3月18日

Hello World计划

以下代码创建一个简单的用户界面,其中包含一个Button ,可在单击时将String 输出到控制台。

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. 首次launch 会创建Application 类的新实例(在本例中为HelloWorld )。因此, Application 类需要一个无参数构造函数。
  2. 在创建的Application 实例上调用init() 。在这种情况下, Application 的默认实现不执行任何操作。
  3. Appication 实例调用start ,并将主Stage (= window)传递给该方法。在JavaFX Application线程(Platform线程)上自动调用此方法。
  4. 应用程序一直运行,直到平台确定关闭时间。在这种情况下,当最后一个窗口关闭时,这样做。
  5. Application 实例上调用stop 方法。在这种情况下, Application 的实现不执行任何操作。在JavaFX Application线程(Platform线程)上自动调用此方法。

start 方法中构造场景图。在这种情况下,它包含2个Node :一个Button 和一个StackPane

Button 代表UI中的一个按钮, StackPaneButton 的容器,用于确定它的位置。

创建一个Scene 以显示这些Node 。最后, Scene 被添加到StageStage 是显示整个UI的窗口。

安装或设置

JavaFX API可作为Java SE运行时环境(JRE)和Java Development Kit(JDK)的完全集成功能使用。由于JDK适用于所有主要桌面平台(Windows,Mac OS X和Linux),因此编译为JDK 7及更高版本的JavaFX应用程序也可在所有主要桌面平台上运行。 JavaFX 8也提供对ARM平台的支持.JDK for ARM包括JavaFX的基础,图形和控件组件。

要安装JavaFX,请安装所选版本的Java Runtime环境和Java Development Kit

JavaFX提供的功能包括:

  1. Java API。
  2. FXML和场景生成器。
  3. 的WebView。
  4. Swing互操作性。
  5. 内置UI控件和CSS。
  6. 摩德纳主题。
  7. 3D图形功能。
  8. Canvas API。
  9. 打印API。
  10. 富文本支持。
  11. 多点触控支持。
  12. Hi-DPI支持。
  13. 硬件加速图形管道。
  14. 高性能媒体引擎。
  15. 自包含的应用程序部署模型。