是否可以在不使用控制器类的情况下从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/