91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java fxml數據綁定怎樣進行

小樊
92
2024-09-15 15:58:25
欄目: 編程語言

在JavaFX中,使用FXML進行數據綁定可以讓你更容易地將數據與UI組件關聯起來。以下是一個簡單的示例,說明如何在JavaFX和FXML之間進行數據綁定:

  1. 首先,創建一個JavaFX控制器類,該類將包含要綁定到FXML文件的數據。例如,我們創建一個名為Person的類,其中包含firstNamelastName屬性:
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class Person {
    private StringProperty firstName = new SimpleStringProperty();
    private StringProperty lastName = new SimpleStringProperty();

    public String getFirstName() {
        return firstName.get();
    }

    public StringProperty firstNameProperty() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName.set(firstName);
    }

    public String getLastName() {
        return lastName.get();
    }

    public StringProperty lastNameProperty() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName.set(lastName);
    }
}
  1. 接下來,創建一個FXML文件,該文件將定義UI組件,并將這些組件與Person類中的屬性進行綁定。例如,我們創建一個名為PersonView.fxml的文件,其中包含兩個文本字段,分別用于顯示和編輯firstNamelastName屬性:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.VBox?>

<VBox xmlns:fx="http://javafx.com/fxml">
   <TextField fx:id="firstNameField" promptText="First Name" />
   <TextField fx:id="lastNameField" promptText="Last Name" />
</VBox>
  1. 現在,我們需要在控制器類中加載FXML文件,并將其與Person類的實例進行綁定。例如,我們創建一個名為PersonController的類,該類將加載FXML文件,并將其與Person類的實例進行綁定:
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class PersonController {
    @FXML
    private TextField firstNameField;

    @FXML
    private TextField lastNameField;

    private Person person;

    public PersonController(Person person) {
        this.person = person;
    }

    public void show() throws IOException {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("PersonView.fxml"));
        loader.setController(this);
        Parent root = loader.load();

        Stage stage = new Stage();
        stage.setScene(new Scene(root));
        stage.show();
    }

    @FXML
    public void initialize() {
        firstNameField.textProperty().bindBidirectional(person.firstNameProperty());
        lastNameField.textProperty().bindBidirectional(person.lastNameProperty());
    }
}
  1. 最后,我們可以在主應用程序中創建一個Person對象,并使用PersonController顯示它:
import javafx.application.Application;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Person person = new Person();
        person.setFirstName("John");
        person.setLastName("Doe");

        PersonController controller = new PersonController(person);
        controller.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

現在,當你運行此應用程序時,它將顯示一個包含兩個文本字段的窗口。這些文本字段將自動與Person對象的firstNamelastName屬性進行雙向綁定。當你在文本字段中輸入內容時,Person對象的相應屬性將自動更新;反之亦然。

0
临潭县| 婺源县| 姜堰市| 犍为县| 涿鹿县| 廊坊市| 昌江| 肇庆市| 自贡市| 海阳市| 祥云县| 沾益县| 托克逊县| 鄂托克前旗| 融水| 松江区| 西乌珠穆沁旗| 伊吾县| 古蔺县| 赤城县| 陆河县| 荣昌县| 通渭县| 定兴县| 方城县| 涡阳县| 洛隆县| 靖安县| 静宁县| 卢龙县| 固安县| 巫山县| 文登市| 阳原县| 铜川市| 安宁市| 广德县| 疏附县| 南丰县| 东阳市| 建湖县|