java fx如何
JavaFX 基础介绍
JavaFX 是一个用于构建富客户端应用程序的 Java 库,提供了丰富的图形、媒体和网络功能。它是 Java 标准库的一部分,可以用于开发跨平台的桌面应用程序。
环境搭建
确保安装了 JDK 8 或更高版本,因为 JavaFX 从 JDK 11 开始不再包含在标准 JDK 中。如果使用 JDK 11 或更高版本,需要单独下载 JavaFX SDK 并将其添加到项目依赖中。
对于 Maven 项目,可以在 pom.xml 中添加以下依赖:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17</version>
</dependency>
创建第一个 JavaFX 应用程序
一个基本的 JavaFX 应用程序需要继承 javafx.application.Application 类并重写 start 方法。以下是一个简单的示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
StackPane root = new StackPane(label);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
布局管理
JavaFX 提供了多种布局容器,用于管理 UI 组件的排列方式。常用的布局包括:
VBox:垂直排列子节点。HBox:水平排列子节点。BorderPane:分为顶部、底部、左侧、右侧和中心区域。GridPane:网格布局,支持复杂的行列排列。
BorderPane root = new BorderPane();
root.setTop(new Label("Top"));
root.setCenter(new Label("Center"));
事件处理
JavaFX 使用事件驱动模型。可以为 UI 组件添加事件监听器:
Button button = new Button("Click Me");
button.setOnAction(event -> {
System.out.println("Button clicked");
});
CSS 样式
JavaFX 支持 CSS 样式,可以通过外部 CSS 文件或内联样式美化 UI:
label.setStyle("-fx-font-size: 16px; -fx-text-fill: red;");
或者使用外部 CSS 文件:
scene.getStylesheets().add("style.css");
FXML 和 Scene Builder
FXML 是一种基于 XML 的语言,用于定义 JavaFX UI。Scene Builder 是一个可视化工具,可以拖拽组件生成 FXML 文件。
示例 FXML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<BorderPane xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
<top>
<Label text="Top Label"/>
</top>
<center>
<Button text="Click Me"/>
</center>
</BorderPane>
加载 FXML 文件:
Parent root = FXMLLoader.load(getClass().getResource("ui.fxml"));
动画和效果
JavaFX 提供了丰富的动画和特效支持:
TranslateTransition transition = new TranslateTransition(Duration.seconds(2), button);
transition.setByX(100);
transition.play();
图表
JavaFX 内置了多种图表类型,如折线图、饼图和柱状图:
PieChart pieChart = new PieChart();
pieChart.getData().add(new PieChart.Data("A", 30));
pieChart.getData().add(new PieChart.Data("B", 70));
部署
JavaFX 应用程序可以打包为可执行 JAR 文件或使用工具如 jlink 创建自定义运行时映像。对于模块化项目,需要在 module-info.java 中添加 JavaFX 模块依赖:

requires javafx.controls;
学习资源
- Oracle JavaFX 官方文档
- OpenJFX 官网
- JavaFX 书籍和在线教程
JavaFX 是一个功能强大的框架,适合开发现代化的桌面应用程序。通过结合 FXML、CSS 和 Java 代码,可以快速构建复杂的用户界面。






