JavaFX 使用 FXML 来设计用户界面,并且可以很容易地处理动态内容。以下是一些关于如何在 FXML 中处理动态内容的步骤和示例:
首先,创建一个 FXML 文件来定义用户界面布局。例如,创建一个名为 DynamicContentExample.fxml
的文件,并添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns:fx="http://javafx.com/fxml" prefHeight="200" prefWidth="300">
<Button layoutX="100" layoutY="80" text="Add Content" onAction="#handleAddContent"/>
<VBox layoutX="10" layoutY="120" id="dynamicContentContainer"/>
</AnchorPane>
在这个例子中,我们有一个按钮和一个垂直盒子(VBox),用于显示动态添加的内容。
接下来,创建一个 Java 类(例如 DynamicContentExampleController.java
)来处理 FXML 文件中的逻辑。在这个类中,我们将处理按钮的点击事件,以便向 VBox 添加新的内容。
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
public class DynamicContentExampleController {
@FXML
private Button addContentButton;
@FXML
private VBox dynamicContentContainer;
@FXML
public void handleAddContent() {
Label newLabel = new Label("Dynamic Content");
dynamicContentContainer.getChildren().add(newLabel);
}
}
在这个控制器类中,我们使用 @FXML
注解来标记 FXML 文件中的元素,并创建一个处理添加内容的 handleAddContent
方法。当按钮被点击时,这个方法会被调用,向 VBox 添加一个新的标签(Label)。
最后,在主应用程序类(例如 MainApp.java
)中,加载 FXML 文件并显示界面。
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.stage.Stage;
public class MainApp extends Application {
@Override
public void start(Stage primaryStage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("DynamicContentExample.fxml"));
primaryStage.setTitle("Dynamic Content Example");
primaryStage.setScene(new javafx.scene.Scene(root));
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
现在,当你运行主应用程序类并点击 “Add Content” 按钮时,一个新的标签将被动态添加到 VBox 中。你可以根据需要替换为其他类型的动态内容,例如文本框、列表视图等。