gpt4 book ai didi

Java - 从 FXML ald Java Controller 传递变量

转载 作者:行者123 更新时间:2023-12-02 01:31:21 25 4
gpt4 key购买 nike

我使用 FXML 编写了一个程序。在 FXML 中,我创建了 4 个文本字段和按钮。我的问题是,当我单击此按钮时,如何将参数从 FXML 中的 TextFields 发送到 Controller 。

我正在使用 FXML 制作 JavaFX 应用程序。我将此应用程序连接到数据库。我上周的搜索没有成功,但没有发现任何特别的东西可以帮助我。

<children>
<BorderPane prefHeight="30.0" prefWidth="700.0">
<bottom>
<AnchorPane>
<children>
<Button text="Add car" fx:id="button" onAction="#AddCar"/>
</children>
</AnchorPane>
</bottom>
</BorderPane>
<TextField promptText="Brand" id="carBrand"/>
<TextField promptText="Model" id="carModel"/>
<TextField promptText="Mileage" id="carMileage"/>
</children>

我希望单击 FXML 中的按钮 - Java Controller 从 FXML 获取参数并写入控制台。实际上我知道如何在控制台中编写,但我的问题是我不知道如何从 FXML 获取品牌、型号和里程。

最佳答案

您需要将 TextField 注入(inject) Controller ,然后查询它们的文本属性。为此,请为每个要注入(inject)的元素指定一个 fx:id ,并向 Controller 类添加一个具有相同类型和名称的字段。如果该字段不是公开的,那么您需要使用 @FXML 对其进行注释。

<?xml version="1.0" encoding="UTF-8"?>

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

<VBox xmlns="http://javafx.com/javafx/12.0.1" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.example.Controller" spacing="10" alignment="center">
<TextField fx:id="carBrand" promptText="Brand"/>
<TextField fx:id="carModel" promptText="Model"/>
<TextField fx:id="carMileage" promptText="Mileage"/>
<Button text="Add car" onAction="#addCar"/>
</VBox>

package com.example;

import javafx.fxml.FXML;
import javafx.event.ActionEvent;
import javafx.scene.control.TextField;

public class Controller {

@FXML private TextField carBrand;
@FXML private TextField carModel;
@FXML private TextField carMileage;

@FXML
private void addCar(ActionEvent event) {
event.consume();

String brand = carBrand.getText();
String model = carModel.getText();
String mileage = carMileage.getText();
// do something with values...
}

}

注意:按照 Java 命名约定,方法名称使用 camelCase。换句话说,按钮的操作方法的名称应该是 addCar (如上),而不是 AddCar

关于Java - 从 FXML ald Java Controller 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55999619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com