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 中。你可以根據需要替換為其他類型的動態內容,例如文本框、列表視圖等。