是否可以在不使用控制器类的情况下从JavaFX中的FXML接口字段传递/获取值?

最佳答案

不,不是。

JavaFX遵循MVC类型的体系结构。该模型由程序员决定(在JavaFX可观察属性的支持下):FXML支持视图,而Java控制器是Controller。

这在布局的定义(fxml中的视图)和处理逻辑(Java中的控制器)之间进行了很好的区分,该逻辑遵循了已建立的,久经考验的行业标准设计。它还使FXML保持美观和简单,这使得创建Rapid Application Development(RAD)工具(例如SceneBuilder)相对容易。

就是说,(至少在技术上)对FXML中的脚本的支持,尽管我不知道在现实中对此有任何使用(或者甚至没有任何实际的例子)。 FXML文档具有brief section on scripting,并且可以肯定以下“有效”:

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

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<?language javascript?>

<VBox xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <TextField promptText="Enter a number" fx:id="x" />
        <TextField promptText="Enter another number" fx:id="y" />
        <Button text="Calculate" onAction="sum.text=parseInt(x.text)+parseInt(y.text)"/>
        <Label fx:id="sum" />

    </children>
</VBox>


如果您想做一些简单的事情来避免“计算”按钮,而只是在文本字段中的文本更改时更新标签,请随时发布。我真的不认为这是适用于任何实际应用程序的技术。

关于java - 如何在不使用JavaFX中的 Controller 类的情况下使用FXML(从接口(interface)传递或获取值)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22491444/

10-12 20:29