1. 安装 JavaFX:
从 Java 11 开始,JavaFX 不再捆绑在 JDK 中。你可以选择使用 OpenJFX,它是 OpenJDK 的一部分。你可以从 [OpenJFX 官方网站](https://openjfx.io/) 下载并安装。
2. 使用 Scene Builder:
[Scene Builder](https://gluonhq.com/products/scene-builder/) 是一个可视化工具,用于设计 JavaFX 用户界面。你可以使用 Scene Builder 来创建 UI,然后通过 Java 代码与之交互。
3. 创建一个简单的 JavaFX 应用程序:
3.1 创建项目:
使用你喜欢的 IDE(如 IntelliJ IDEA、Eclipse)创建一个新的 Java 项目,并将 OpenJFX 库添加到项目中。
3.2 创建主类:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class HelloWorldApp extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// 创建一个标签
Label label = new Label("Hello, JavaFX!");
// 创建一个场景
Scene scene = new Scene(label, 300, 200);
// 设置主舞台的标题和场景
primaryStage.setTitle("JavaFX Hello World");
primaryStage.setScene(scene);
// 显示主舞台
primaryStage.show();
}
}
3.3 运行应用程序:
在 main 方法中调用 launch(args) 启动 JavaFX 应用程序。这将调用 start 方法,其中创建了主舞台、场景和标签。
4. 与 Scene Builder 集成:
你可以使用 Scene Builder 设计用户界面,然后在 Java 代码中加载和处理它。
4.1 在 Scene Builder 中创建 UI:
使用 Scene Builder 创建你的用户界面,保存 .fxml 文件。
4.2 加载 UI 文件:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class FxmlExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// 加载 FXML 文件
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
// 创建一个场景
Scene scene = new Scene(root, 300, 200);
// 设置主舞台的标题和场景
primaryStage.setTitle("FXML Example");
primaryStage.setScene(scene);
// 显示主舞台
primaryStage.show();
}
}
5. 事件处理:
JavaFX 提供了丰富的事件处理机制,允许你响应用户界面上的事件。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class EventHandlingExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Button button = new Button("Click me");
// 注册事件处理程序
button.setOnAction(e -> {
System.out.println("Button clicked!");
});
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("Event Handling Example");
primaryStage.setScene(scene);
primaryStage.show();
}
}
6. 布局管理:
JavaFX 提供了多种布局管理器,用于灵活地排列和组织用户界面元素。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class LayoutExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
Button button3 = new Button("Button 3");
// 使用 HBox 布局
HBox hbox = new HBox(10); // 间距为 10
hbox.getChildren().addAll(button1, button2, button3);
Scene scene = new Scene(hbox, 300, 200);
primaryStage.setTitle("Layout Example");
primaryStage.setScene(scene);
primaryStage.show();
}
}
以上是一个简单的 JavaFX 教程,涵盖了基本的概念和用法。JavaFX 提供了丰富的图形库和工具,使得构建现代、交互式的用户界面变得更加容易。
转载请注明出处:http://www.pingtaimeng.com/article/detail/462/Java