抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

初识JavaFX

什么是JavaFX

JavaFXJava下的图形界面工具包,是一组图形和媒体API,我们可以用它们来进行桌面端程序开发。

JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。因为 JavaFX Script是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用JavaFX技术创建和管理大型程序变为可能。

同时基于Java的跨平台的特性,JavaFx可编译在windowsmacoslinux平台下的应用程序。

快速构建项目

前提条件

安装如下软件:

  • java11
  • idea
  • maven

运行helloword

openjfx网站中,记录中使用mavengradleidea等工具构建项目的方法,此处我使用的是maven来构建项目,项目pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>top.jiangliuhong.jfx</groupId>
    <artifactId>helloword</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>15</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>15</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.5</version>
                <configuration>
                    <mainClass>HelloFX</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

创建程序入口:

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Main extends Application {
    public void start(Stage stage) throws Exception {
        Text text = new Text("helloJFX11221");
        text.setFont(Font.font(null, FontWeight.BOLD, 20));
        HBox hBox = new HBox();
        hBox.setPrefWidth(400);
        hBox.setPrefHeight(200);
        hBox.setAlignment(Pos.CENTER);
        hBox.getChildren().add(text);
        Scene scene = new Scene(hBox);
        stage.setScene(scene);
        stage.show();
    }
}

直接运行Main类,系统会弹出如下窗口,

运行错误

上面的示例在mac上是能够正确运行,但是在windows系统下会提示如下错误:

错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序

此时需要再增加一个启动类,然后运行即可,代码如下:

import javafx.application.Application;

public class App {

    public static void main(String[] args) {
        Application.launch(Main.class);
    }
}

评论